Angular 中的@Input-less OnPush 组件

@Input-less OnPush Components in Angular

我有一个场景,我在 Angular 中有 @Input-less OnPush 组件。如果我调用 markForCheck(),将检查组件模板中的视图绑定?

我的意思是,我的组件是 OnPush 并且 markForCheck() 标记了所有要检查的祖先,并且因为我的组件没有 @Input,所以 Angular 在这里的行为是什么? Angular 会跳过检查组件的视图绑定还是会一直检查?

ChangeDetectorRef的源代码示例中可以看出。 视图 显示在调用 markForCheck() 时更新的值 numberOfTicks。请注意,该组件没有 @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);
    }
  }