Я пытаюсь узнать, как использовать ng-шаблон, изменив стандартный проект stackblitz.com «Hello», чтобы компонент Hello отображался с помощью ng-шаблона.К сожалению, он получает неприятный ExpressionChangedAfterItHasBeenCherredError.
Предыдущее значение: 'name: undefined'.Текущее значение: 'name: Angular'.Кажется, что представление было создано после того, как его родитель и дочерние элементы были грязно проверены.Был ли он создан в хуке обнаружения изменений ?
Может кто-нибудь объяснить, что это может быть выполнено без ошибки?
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
name = 'Angular';
@ViewChild('tpl') tpl;
constructor(private _vcr: ViewContainerRef) { }
ngAfterViewInit() {
this._vcr.createEmbeddedView(this.tpl);
}
}
app.component.html:
<ng-template #tpl>
<hello name="{{ name }}"></hello>
</ng-template>
Ссылка: https://stackblitz.com/edit/angular-48ptik?file=src%2Fapp%2Fapp.component.html