angular2 ngOnChanges不适用于多个输入

时间:2016-08-23 10:46:56

标签: javascript angular typescript

我正在研究这个angular2 app,我在一个组件中接受两个输入。

我已经使用ngOnChanges来检测这些输入值的变化。

@Input() games: any;
@Input() selectedGame:any;

ngOnChanges(changes: {[propName: string]: SimpleChange}) {    
    this.selectedGame=changes['selectedGame'].currentValue;  //this works
    this.games=changes['games'].currentValue;    //this doesn't work
}

但是,我只能检测第一个变量的变化。当其值在父级中更改时,第二个变量不会更新。

任何输入?

2 个答案:

答案 0 :(得分:1)

根据父组件的更改,可能会为每个输入更改单独触发ngOnChanges。您需要先检查哪个输入已更改。

ngOnChanges(changes: SimpleChange}) {   
    if(changes['selectedGame'] !== undefined)
        this.selectedGame=changes['selectedGame'].currentValue;

    if(changes['games'] !== undefined)
        this.games=changes['games'].currentValue;
}

这是工作的插件 https://plnkr.co/edit/n6X21VHXw1xlA8XCPoQu

答案 1 :(得分:1)

您应该使用SimpleChanges的{​​{1}}实例,它将为您提供所有输入参数列表。

SimpleChange