Angular5 中具有动态内容的可重用模态

Tim*_*Tim 2 angular angular5

我有一个可重用的模态组件,与其他几个组件一起使用。

我使用的模态框架来自ng-bootstrapNgbActiveModal)。

该模式仅列出一组来自调用它的父组件的字符串。

但是,我希望模式根据父组件的不同显示不同。例如,我可能需要它来显示表格而不是列表。我是这样拼凑的:

<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>
Run Code Online (Sandbox Code Playgroud)

这是可行的,但它确实很丑陋,并且完全依赖于来自父级的数据项。正确执行此操作的角度方法是什么?

Sia*_*Sia 5

我相信你可以使用输入字段。所以在模态组件中是这样的:

Input() content;
Run Code Online (Sandbox Code Playgroud)

然后简单地说:

const modal = this.modalService.open(ModalComponent);
modal.componentInstance.content = 'something here';
Run Code Online (Sandbox Code Playgroud)

在打开模式时添加所需的文本或其他内容。