As stated by drewmoore, the proper solution in this case is to manually trigger change detection for the current component. This is done using the detectChanges()
method of the ChangeDetectorRef
object (imported from angular2/core
), or its markForCheck()
method, which also makes any parent components update. Relevant example:
import { Component, ChangeDetectorRef, AfterViewInit } from 'angular2/core'
@Component({
selector: 'my-app',
template: `<div>I'm {{message}} </div>`,
})
export class App implements AfterViewInit {
message: string = 'loading :(';
constructor(private cdr: ChangeDetectorRef) {}
ngAfterViewInit() {
this.message = 'all done loading :)'
this.cdr.detectChanges();
}
}
Here are also Plunkers demonstrating the ngOnInit, setTimeout, and enableProdMode approaches just in case.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…