【发布时间】:2018-03-27 16:36:58
【问题描述】:
我有一个与其他几个组件一起使用的可重用模态组件。
我使用的模态框架来自ng-bootstrap (NgbActiveModal)。
模式只是列出了一组来自调用它的父组件的字符串。
但是,我希望模态显示取决于父组件。例如,我可能需要它来显示表格而不是列表。我是这样弄的:
<div class="modal-body">
<div *ngIf="data.encoding !== undefined">
<p>Hello {{data.name}}. These are your badly encoded words:</p>
<ul><li *ngFor="let item of data.words">{{item}}</li></ul>
</div>
<div *ngIf="data.urls !== undefined">
<p>Hello {{data.name}}. These are your broken urls:</p>
<ul><li *ngFor="let item of data.urls">{{item}}</li></ul>
</div>
这行得通,但它确实很丑陋并且完全依赖于父级的数据项。正确执行此操作的角度方法是什么?
【问题讨论】:
-
“角度方式”是用这个可重用的模板制作一个组件,并在必要时简单地将您的组件注入到父 HTML 模板中。您可以让组件接受 input ,然后正确显示它。例如。如果您的组件名为
app-resuable-component,您可以放置<app-reusable-component [data]="mydata"></app-resuable-component> -
@SyntacticFructose,试图理解。模板是我的模态组件的“主体”部分,两个 ngIf 语句对应于调用模态的两个不同父组件。你是说我应该创建一个与每个父组件对应的结果模板组件并将其作为其主体注入到模态组件中?