gpt4 book ai didi

javascript - 将新对象添加到数组 Angular

转载 作者:太空狗 更新时间:2023-10-29 18:14:54 26 4
gpt4 key购买 nike

我试图在 API 调用后将 JSON 对象放入数组中。

首先,我进行了 API 调用,然后尝试将每个用户添加到格式化的 JSON 对象中。

connectionProvider.ts

import { UserModelProvider } from './../user-model/user-model';
import { MSAdal, AuthenticationContext, AuthenticationResult } from '@ionic-native/ms-adal';

export class MsConnectionProvider {
userInfo : UserModelProvider;
users: UserModelProvider[];

constructor(...) {}

getUserInfo(){
let header = new Headers({
Authorization: this.accessToken;
});
let options = new RequestOptions({headers: header});

this.usersSubscription = this.http.get("https://graph.microsoft.com/v1.0/groups/**ID**/members", options).map(res => res.json()['value']);
this.usersSubscription.subscribe(res => {
for (let user of res){
this.addUserInfo(user.displayName, user.jobTitle, "something", user.mail);
}
});
}

addUserInfo(name, job, departement, mail){
this.userInfo = new UserModelProvider;

this.userInfo.name = name;
this.userInfo.job = job;
this.userInfo.departement = departement;
this.userInfo.mail = mail;

this.users.push(this.userInfo);
}
}

userModelProvider.ts

export class UserModelProvider {
name: string;
job: string;
departement: string;
mail: string;
photo: any;
}

问题是当我尝试将“this.userInfo = new UserModelProvider”插入 this.users 数组功能 block 时,没有任何反应。

我当然不懂课,你能帮我吗?

谢谢。

最佳答案

您不能推送到尚未初始化的数组。

你需要改变:

users: UserModelProvider[]

到:

users: UserModelProvider[] = [];

另外(可能有用也可能没用):

可能什么都没有发生,因为推送会改变数组,因此 Angular 变化检测可能不会启动。

不使用推送,而是创建一个新数组:

this.users = [...this.users, this.userInfo]

或者在 ES5 中:

this.users = this.users.concat([this.userInfo])

关于javascript - 将新对象添加到数组 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51982281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com