【发布时间】:2017-08-09 14:50:43
【问题描述】:
我正在尝试了解更改检测和 ChangeDetectionStrategy.OnPush 的实际工作原理,这是一个我无法理解的奇怪示例:
我使用以下模板创建了一个父组件:
<app-matrix-reader *ngFor="let m of fooService.getMatrices()" [matrix]="m"></app-matrix-reader>
子组件 app-matrix-reader 有一个输入文本。
<input type="text" [(ngModel)]="matrix.a" /><br/>
如果我只是多次单击输入(即使不更改其值),则会调用函数 getMatrices。
为什么调用函数 getMatrices()?我还放置了 changeDetectionStrategy.OnPush ,因此只有在更新了组件的输入时才应检查和更新组件...
谢谢
【问题讨论】:
-
Angular 只是检查输入和输出输入后是否发生了变化,并检查它是否需要将原始值与当前值进行比较
标签: angular angular2-changedetection