我有一个场景,我OnPush
在 Angular 中有 @Input-less 组件。如果我打电话markForCheck()
,我的组件模板中的视图绑定将被检查?
我的意思是,我的组件是OnPush
并且markForCheck()
标记了所有要检查的祖先,并且因为我的组件没有@Input,所以 Angular 在这里的行为是什么?Angular 会跳过检查组件的视图绑定还是总是检查?
我有一个场景,我OnPush
在 Angular 中有 @Input-less 组件。如果我打电话markForCheck()
,我的组件模板中的视图绑定将被检查?
我的意思是,我的组件是OnPush
并且markForCheck()
标记了所有要检查的祖先,并且因为我的组件没有@Input,所以 Angular 在这里的行为是什么?Angular 会跳过检查组件的视图绑定还是总是检查?
正如您从ChangeDetectorRef
. 该视图显示调用numberOfTicks
时更新的值markForCheck()
。请注意,该组件没有@Input()
绑定。
@Component({
selector: 'cmp',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `Number of ticks: {{numberOfTicks}}`
})
class Cmp {
numberOfTicks = 0;
constructor(private ref: ChangeDetectorRef) {
setInterval(() => {
this.numberOfTicks++;
// the following is required, otherwise the view will not be updated
this.ref.markForCheck();
}, 1000);
}
}