在Angular中,可以通过ChangeDetectorRef
来强制检测变化。以下是一个示例代码:
import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
@Component({
selector: 'app-example',
template: `
{{ data }}
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ExampleComponent {
data: string;
constructor(private cdr: ChangeDetectorRef) {}
updateData() {
// 模拟从外部更新数据
this.data = 'New Data';
// 手动触发变化检测
this.cdr.detectChanges();
}
}
在上面的例子中,组件使用了ChangeDetectionStrategy.OnPush
来启用OnPush策略。当点击按钮时,updateData()
方法会更新data
属性的值。为了确保组件能够检测到这个变化,我们使用ChangeDetectorRef
的detectChanges()
方法来手动触发变化检测。
通过这种方式,我们可以在OnPush策略下从外部强制检测变化。