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?
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 childrenYou can inject ApplicationRef
, NgZone
, or ChangeDetectorRef
into your component.