Я хочу повторно использовать ng-шаблон с viewchild, который динамически изменяется и обновлять его во всех местах, где я повторно использую ng-шаблон.Однако он не обновляется во всех местах.
Он работает, когда я делаю содержимое шаблона ng статическим, как это:
<h2>Position 1</h2>
<ng-container [ngTemplateOutlet]="statusTemplate"></ng-container>
<h2>Position 2</h2>
<ng-container [ngTemplateOutlet]="statusTemplate"></ng-container>
<ng-template #statusTemplate>
<h3>Saved</h3>
</ng-template>
, который выводит следующий HTML:
Однако, когда я делаю h3
внутри ng-шаблона дочерним видом и пытаюсь обновить его динамически, он не обновляется в обоих местах.
например,
<h2>Position 1</h2>
<ng-container [ngTemplateOutlet]="statusTemplate"></ng-container>
<h2>Position 2</h2>
<ng-container [ngTemplateOutlet]="statusTemplate"></ng-container>
<ng-template #statusTemplate>
<h3 #status></h3>
</ng-template>
тогда у меня есть этот код, который автоматически устанавливает внутреннее содержимое дочернего элемента представления, однако обновление не появляется в обоих местах. Я повторно использую шаблон
@ViewChild('status', { static: false })
public status: any;
public setStatusTo(name: string): void {
this.status.nativeElement.innerHTML = name;
}
HTML выглядит так, когда он запускается в браузере
<h2 _ngcontent-rdv-c3="">Position 1</h2>
<!--bindings={
"ng-reflect-ng-template-outlet": "[object Object]"
}-->
<h3 _ngcontent-rdv-c3="">Success</h3>
<h2 _ngcontent-rdv-c3="">Position 2</h2>
<!--bindings={
"ng-reflect-ng-template-outlet": "[object Object]"
}-->
<h3 _ngcontent-rdv-c3=""></h3><!---->
Как мне добиться обновления повторно использованного ng-шаблона в нескольких местах?Почему это не работает?