如何动态更改 Angular 中的模板?
How to dynamically change template in Angular?
我有一个渲染树的通用抽象组件。
我需要能够根据条件动态更改此组件的模板吗?
我认为树逻辑应该分开服务。而且我必须创建两个具有不同模板的组件,它们使用树服务,不是吗?
假设,我有 country/cities.
的树
在一页上,我需要在 DOM 结构中显示:
<div class="root">
<div class="parent">
<div class="children"></div>
</div>
</div>
在另一页中我需要显示相同的 DOM 但有一些不同。
<div class="root">
<div class="parent">
<div class="children"><label></label><input></div>
</div>
</div>
所以,当然我可以使用一个模板并使用 *ngIf
来确定哪个 DOM 元素 show/hide。
但我需要分离模板并动态加载它们。
根据变量显示模板。要选择模板,请使用 *ngIf
。让我举个例子:
HTML 的共享组件:
<ng-container *ngIf="showWithoutLabel; else showWithLabel">
<div class="root">
<div class="parent">
<div class="children"></div>
</div>
</div>
</ng-container>
<ng-template #showWithLabel>
<div class="root">
<div class="parent">
<div class="children"><label></label><input></div>
</div>
</div>
</ng-template>
打字稿:
showWithoutLabel = false;
我有一个渲染树的通用抽象组件。
我需要能够根据条件动态更改此组件的模板吗?
我认为树逻辑应该分开服务。而且我必须创建两个具有不同模板的组件,它们使用树服务,不是吗?
假设,我有 country/cities.
的树在一页上,我需要在 DOM 结构中显示:
<div class="root">
<div class="parent">
<div class="children"></div>
</div>
</div>
在另一页中我需要显示相同的 DOM 但有一些不同。
<div class="root">
<div class="parent">
<div class="children"><label></label><input></div>
</div>
</div>
所以,当然我可以使用一个模板并使用 *ngIf
来确定哪个 DOM 元素 show/hide。
但我需要分离模板并动态加载它们。
根据变量显示模板。要选择模板,请使用 *ngIf
。让我举个例子:
HTML 的共享组件:
<ng-container *ngIf="showWithoutLabel; else showWithLabel">
<div class="root">
<div class="parent">
<div class="children"></div>
</div>
</div>
</ng-container>
<ng-template #showWithLabel>
<div class="root">
<div class="parent">
<div class="children"><label></label><input></div>
</div>
</div>
</ng-template>
打字稿:
showWithoutLabel = false;