1

我有一个模式服务,它将对象作为参数,如下所示:

    modal = {
      title: My Modal,
      body: template
    }

这被传递给一个模态组件,该组件包含模态的模板(使用引导程序 4)。

<div class="modal-header">
    <h4 class="modal-title">{{title}}</h4>
    <button type="button" class="close" aria-label="Close" (click)="onCancel()">
        <span aria-hidden="true">&times;</span>
    </button>
</div>
<div class="modal-body" [innerHtml]="body | keepHtml"></div>
<div class="modal-footer">
    <button (click)="onCancel()" class="btn">
        <span>Cancel</span>
    </button>
    <button (click)="onOk()" class="btn btn-primary">
        <span>Ok</span>
    </button>
</div>

基于此,尸体通过消毒管道:https ://medium.com/@AAlakkad/angular-2-display-html-without-sanitizing-filtering-17499024b079

一切正常,直到我尝试在正文中使用自定义组件选择器并且它没有显示。我在控制台中没有收到清理错误。任何人都知道为什么会发生这种情况以及如何解决它?

4

1 回答 1

2

这与消毒无关。Angular 只是不支持以这种方式动态创建组件。当您构建 Angular 应用程序时,Angular 会为 Angular 特定标记生成 JavaScript 代码。在运行时添加的标记没有任何这样的效果。

有关在运行时编译组件的方法,请参阅如何使用/创建动态模板来使用 Angular 2.0 编译动态组件?

于 2017-11-02T18:06:17.587 回答