使ChangeDetectionStrategy可由组件使用者配置

时间:2019-07-10 18:02:17

标签: angular angular-changedetection

假设UI库中有一个使用ChangeDetectionStrategy.Default的组件,但希望通过ChangeDetectionStrategy.OnPush属性为消费者提供使用Input()的选项(例如,对性能敏感的情况)

是否可以在运行时更改组件的更改检测策略?还是只能在@Component装饰器中设置它?

1 个答案:

答案 0 :(得分:-1)

可以从'@ angular / core'注入ChangeDetectorRef并在通过Input()属性触发的函数中调用detectChanges()

// Import
import { ChangeDetectorRef } from '@angular/core';

//Constructor
constructor(private cdr: ChangeDetectorRef) { }

//Function
input() {
  this.cdr.detectChanges();
}