Angular 将数据从服务传递到我的组件后,该组件不会';你不能呈现这些变化吗?
我有一个包含两个阵列的服务:Angular 将数据从服务传递到我的组件后,该组件不会';你不能呈现这些变化吗?,angular,Angular,我有一个包含两个阵列的服务: activeUsers: { name: string; id: number }[] = [ { name: "Jimmy", id: 0 }, { name: "Jaden", id: 1 }, ]; inactiveUsers: { name: string; id: number }[] = [ { name: "Heiji", id: 2 }, { name:
activeUsers: { name: string; id: number }[] = [
{ name: "Jimmy", id: 0 },
{ name: "Jaden", id: 1 },
];
inactiveUsers: { name: string; id: number }[] = [
{ name: "Heiji", id: 2 },
{ name: "Pheonix", id: 3 },
{ name: "Miles", id: 4 },
];
在不同的时间点,我将使用push方法更改这些数组
this.removeUser(data.id);
if (data.status === "active") {
this.activeUsers.push({ name: data.name, id: data.id });
} else {
this.inactiveUsers.push({ name: data.name, id: data.id });
}
然后,我在两个单独的组件中接收它们:
ngOnInit() {
this.users = this.usersService.activeUsers;
}
然后将数据呈现到屏幕上:
<li class="list-group-item" *ngFor="let user of users">
{{ user.name }} |
<a href="#" (click)="onSetToInactive(user.id)">Set to Inactive</a>
</li>
或者我可以删除removeUser()调用。将此代码块保留在服务中:
if (data.status === "active") {
this.activeUsers.push({ name: data.name, id: data.id });
} else {
this.inactiveUsers.push({ name: data.name, id: data.id });
}
现在,这似乎是一个时间问题。我可以在组件中设置数据之前等待,也可以更快地设置数据。removeUser()方法确实很慢——但我不明白,如果数据发生了变化,为什么它不简单地重新呈现组件?解决了:原来我的方法是重新分配数组,所以我不得不改用一种新方法,只对其进行了变异。这个问题在论坛上多次得到解决,用一个好的答案来检查这个问题:请不要这样回答。你可以在问题的评论部分这样做。
if (data.status === "active") {
this.activeUsers.push({ name: data.name, id: data.id });
} else {
this.inactiveUsers.push({ name: data.name, id: data.id });
}