目前,Child组件试图删除父组件的数组时遇到问题。
父组件:
@Component({
selector: 'parent',
templateUrl: 'app/templates/parent.html'
})
export class ParentComponent {
public items = [];
}
父HTML
<child [items]="items"></child>
<product *ngFor="let item of items><product>
子组件
@Component({
selector: 'child',
templateUrl: 'app/templates/child.html'
})
export class ChildComponent{
@Input() items;
emptyItems() {
this.items = [];
}
addItem() {
this.items.push({'title': 'foo'});
}
}
但是,当我调用emptyItems / addItem函数时,子视图中的items数组将反映更改,但是在父组件上它不会更改。
我需要使用输出吗?
答案 0 :(得分:1)
正确的方法是使用Output
https://angular.io/docs/ts/latest/cookbook/component-communication.html#
但是我们可以在items
上使用双向约束,这将反映双方的变化:
<child [(items)]="items"></child>
查看更多详情https://angular.io/docs/ts/latest/guide/cheatsheet.html
<强>更新强>: 尝试以不同的方式清空数组How do I empty an array in JavaScript?
Output
应该有效https://angular.io/docs/ts/latest/api/core/index/Output-var.html
我们的想法是您必须将更新的内容从子传递到父并手动更新父的成员items