Angular 2子组件从父组件数组中删除项目

时间:2016-06-16 00:25:38

标签: javascript angular

目前,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数组将反映更改,但是在父组件上它不会更改。

我需要使用输出吗?

1 个答案:

答案 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