Angular 2,插值HTML

时间:2016-06-21 16:58:31

标签: angular pipe interpolation

我正在创建一个管道:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'highlight'
})
export class HighlightPipe implements PipeTransform {
    transform(value: any, args: string): any {
        let s = value + '';
        let startIdx = s.toLowerCase().indexOf(args.toLowerCase());
        let tokenLen = args.length;

        if (startIdx >= 0 && tokenLen > 0) {
            s = s.substring(0, startIdx) + '<strong>' + s.substring(startIdx, startIdx + tokenLen) + '</strong>' + s.substring(startIdx + tokenLen);
        }
        return s;
    }
}

要像这样使用:

<p>{{ result | highlight : search}}</p>

因此,如果结果是&#39;阿拉巴马州&#39;我的搜索是&#39; ba&#39;,我想要这个:

Ala ba ma

但是我得到了html标签:

Ala<strong>ba</strong>ma

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

pipe应该返回

<strong>${content}</strong>

查看更多详情How to allow html in return of angular2 pipe