Angular 2:视图未在数组推送时更新

2024-01-11

我有两个子组件。他们正在共享我使用 http.get/subscribe 方法加载的 json 文件中的数据。由于某种原因,当我将数据推入数组时,它不会在视图中更新。但它在控制台中显示了更新后的数组。

应用程序组件从服务加载数据

this.dataService.getData()
 .subscribe(
     data => {
       this.data = data;
     },
     (err) => console.log('Error: ', err),
     () => console.log("success!")
   );

我正在使用输入来访问子组件中的数据。当新值被推入数组时,Angular 2 有没有办法更新视图。

显示组件

<div *ngFor="let i of items; let k = index"><h1>{{i.title}}</h1> <p>{{i.desc}}</p></div>

按钮组件

<button (click)="addItem(i)">Add Item</button>

The Component Function
addItem(i){
  let data = {title: "Some title", desc: "Some desc"};
  this.data.list[i].items.push(data);
}

我有同样的问题,我通过使用扩展运算符创建对象的新数组而不是将新元素推入现有数组来解决此问题。

在你的情况下我会做类似的事情:

addItem(i){
  let data = {title: "Some title", desc: "Some desc"};
  this.data.list[i].items = [...this.data.list[i].items, data];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2:视图未在数组推送时更新 的相关文章

随机推荐