javascript - 如何在 Angular 2 的 PipeTransform 中使用自定义组件?

标签 javascript angular angular2-template angular-pipe

我想在管道转换中使用自定义组件 Status,但它不起作用。

浏览器仅显示不带 < Status /> 的值。就像我的组件没有被调用一样。

为什么?请问如何解决?

组件状态已添加到应用程序模块中。

status.pipe.ts

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

@Pipe({
  name: 'status'
})
export class StatusPipe implements PipeTransform {

  transform(value: any): string {
    let status = '<Status type="ok"><b>' + value + '</b></Status>';
    return status;
  }

}

index.html

<td [innerHtml]="result.status | status"></td>

status.component.ts

import { Component, ViewEncapsulation, Input } from '@angular/core';

@Component({
   selector: 'Status',
    template: '<span class="status status--{{ type }}">
      <span class="status__message">
         <ng-content></ng-content>
      </span>
   </span>',
   styleUrls: ['./status.component.css'],
   encapsulation: ViewEncapsulation.None

})
export class StatusComponent {

    @Input() type:any;    

}

最佳答案

因为你试图给它 HTML 值,而它应该是文本值。

试试这个:

<span [innerHTML]="yourValue | status"></span>

而不是

<span>{{yourValue | status}}</span>

关于javascript - 如何在 Angular 2 的 PipeTransform 中使用自定义组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44805420/

相关文章:

javascript - AngularJS:如何设置 ng-model 或更改指令的范围值

javascript - Angular 6 按键从可观察到的 JSON 排序

angular - Angular 2 中组件中的表行

javascript - 在 AngularJS 指令隔离范围中有一个方法是最佳实践吗?

javascript - 浏览器内音频播放器如何工作?

javascript - 无法将 Observable 转换为 Object[]

angular - 如何让 Angular 2/4 更新现有 DOM 节点而不是删除+创建它们?

javascript - 意外的结束标签 | Angular 2.5 |自定义标签

Javascript - 单击表格行上的事件以更改 HTML 元素

Angular 引用# vs ngModel