我正在编写一个具有属性 Mode(): string
的 Angular 组件。
我希望能够以编程方式设置此属性,而不是响应任何事件。
问题是在没有浏览器事件的情况下,模板绑定(bind) {{Mode}}
不会更新。
有没有办法手动触发这种变化检测?
最佳答案
尝试其中之一:
-
ApplicationRef.tick()
- 类似于 AngularJS 的$rootScope.$digest()
-- 即检查完整的组件树 -
NgZone.run(callback)
- 类似于$rootScope.$apply(callback)
-- 即,评估 Angular 区域内的回调函数。我认为,但我不确定,这最终会在执行回调函数后检查完整的组件树。 -
ChangeDetectorRef.detectChanges()
- 类似于$scope.$digest()
-- 即只检查这个组件及其子组件
您可以将 ApplicationRef
、NgZone
或 ChangeDetectorRef
注入(inject)到您的组件中。
关于angular - 在 Angular 中手动触发变化检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34827334/