我使用Angular 1.5.3 with typescript。
我有一个outer
和一个inner
组件,其中outer
个组件包含一个名为arrayValue
的数组,我通过{{{{}}传递给inner
组件1}}的结合:
<
class InnerComponent {
controller: Function = InnerController;
bindings: any = {
arrayValue : "<"
};
...
}
使用InnerController
方法跟踪单向绑定的任何更改(例如$onChanges
):
arrayValue
如果我现在使用以下内容更改public $onChanges(changes: any){
this.onChangesCalledCounter++;
console.log(changes);
}
组件中的arrayValue
outer
调用public switchArrayValue(): void {
if(this.arrayValue === this.fruits){
this.arrayValue = this.vegetables;
} else {
this.arrayValue = this.fruits;
}
}
组件中的$onChanges
。但是,如果我更改inner
方法以执行推送而不是重新分配数组,则switchArrayValue
方法不会 被叫:
$onChanges
有人可以告诉我为什么public switchArrayValue(): void {
this.arrayValue.push("hello, world!");
}
不会触发push
并为此显示解决方法吗?
这是plnkr(我分叉)。