【问题标题】:How to apply Angular2 pipes to dynamic content?如何将 Angular2 管道应用于动态内容?
【发布时间】:2016-08-28 14:43:51
【问题描述】:

我需要应用管道(转换)来格式化通过 API 提供的动态内容。数据实际上是通过自定义格式化程序应用的,该格式化程序本质上绑定到元素上的 [innerHTML]。问题是我附加的管道不按要求适用。

例如,我收到以下值 AB123456D(英国,国民保险号),我想像这样显示它AB 12 34 45 D

对我施加的限制是数据通过使用 [innerHTML] 的绑定格式化并插入到模板中。

// template
<span *ngSwitchWhen="'html'" [innerHTML]="display"></span>


// helper function
display(): string {
  ...
  return this.column.formatter.replace(/\{([^}]*)\}/g, (match, id) => _.get(this.data, id));
  ...
}

// formatter looks like this and my pipe's name is `ni`
<div>{niNum} | ni</div>

渲染时,我看到以下内容...

AB123456D | ni

当我想/期望看到...

AB 12 34 45 D

任何想法如何实现,或者是否可能?

【问题讨论】:

    标签: javascript angularjs angular angular2-pipe


    【解决方案1】:

    Angular 不会以任何方式处理 [innerHtml]="..." 添加的内容。它只是按原样传递给浏览器。

    【讨论】:

    • 谢谢。有什么想法,可行的方法吗?我可以更改模板实现,但不能更改格式化程序方法。
    • 在发送到 [innerHtml]="..." 之前必须准备好 HTML 字符串。我不知道更好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2021-12-12
    • 2017-08-25
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    相关资源
    最近更新 更多