【发布时间】:2017-03-04 20:08:02
【问题描述】:
我有一个关于 Angular 2 的 ngIf 的问题。我目前正在开发我的第一个更大的 Angular 2-App,我想知道 ngIf 的最佳定位。我认为应该有一定的一致性。关于加载子组件,这是我能想到的三个选项:
在父组件的
div中:
<div id="parent-component-div" *ngIf="loadChildComponent">
<app-child-component></app-child-component>
</div>
在父组件的子组件标签中:
<div id="parent-component-div">
<app-child-component *ngIf="loadChildComponent"></app-child-component>
</div>
在子组件中:
<!-- parent-component -->
<div id="parent-component-div">
<app-child-component></app-child-component>
</div>
<!-- child-component -->
<div id="child-component-div" *ngIf="loadComponent">
<!-- child-component logic -->
</div>
我个人发现自己遵循选项一,但看到选项三的优势。但是约定是什么?有约定吗?
【问题讨论】:
-
这取决于你想在你的应用程序中禁用/隐藏什么。 NgIf 完全删除了 DOM 元素,因此如果您确定以后不需要您的子组件,那么在父组件中禁用是安全的。如果您需要稍后显示它,那么在您的子组件中使用 ngIf 执行隐藏/删除部分。请记住,如果以后确定要使用元素,您当然也可以使用 ngShow/ngHide。
标签: angular angular-cli convention angular-ng-if