I’m writing an Angular component that has a property Mode(): string
.
I would like to be able to set this property programmatically not in response to any event.
The problem is that in the absence of a browser event, a template binding {{Mode}}
doesn’t update.
Is there a way to trigger this change detection manually?
5 Answers
Try one of these:
ApplicationRef.tick()
– similar to AngularJS’s$rootScope.$digest()
— i.e., check the full component treeNgZone.run(callback)
– similar to$rootScope.$apply(callback)
— i.e., evaluate the callback function inside the Angular zone. I think, but I’m not sure, that this ends up checking the full component tree after executing the callback function.ChangeDetectorRef.detectChanges()
– similar to$scope.$digest()
— i.e., check only this component and its children
You can inject ApplicationRef
, NgZone
, or ChangeDetectorRef
into your component.