从@angular/core引入AfterViewInit, ChangeDetectorRef。注入ChangeDetectorRef对象
constructor(private todoService:TodoService, private cdr: ChangeDetectorRef){}它提供了以下方法供我们调用:
class ChangeDetectorRef { markForCheck(): void detach(): void detectChanges(): void checkNoChanges(): void reattach(): void } markForCheck() - 在组件的 metadata 中如果设置了 changeDetection: ChangeDetectionStrategy.OnPush 条件,那么变化检测不会再次执行,除非手动调用该方法。 @Component({ selector: 'app-refer', templateUrl: './refer.component.html', styleUrls: ['./refer.component.css'], changeDetection: ChangeDetectionStrategy.OnPush })detach() - 从变化检测树中分离变化检测器,该组件的变化检测器将不再执行变化检测,除非手动调用 reattach() 方法。reattach() - 重新添加已分离的变化检测器,使得该组件及其子组件都能执行变化检测detectChanges() - 从该组件到各个子组件执行一次变化检测 手动设置变更检测: ref.detach(); setInterval(() => { this.ref.detectChanges(); }, 5000);
详情链接:https://www.jianshu.com/p/6bef681a0cae
转载于:https://www.cnblogs.com/hjsblogs/p/10418764.html