将项目推送到数组时,$ onChanges不会被调用

时间:2016-07-27 13:00:21

标签: javascript angularjs typescript

我使用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(我分叉)。

0 个答案:

没有答案