【问题标题】:angular2 Pipe expression on [ngClass] not working[ngClass]上的angular2管道表达式不起作用
【发布时间】:2018-02-14 17:01:06
【问题描述】:

我有一个管道将动态输入字符串中的第一个字母大写

@Pipe({
  name: 'capitalize'
})
export class CapitalizePipe implements PipeTransform {

transform(value: string, args: any[]): string {
if (value === null) return 'Not assigned';
return value.charAt(0).toUpperCase() + value.slice(1);
 }
}

管道不接受 [ngClass] 内的类似

[ngClass]="data.color | capitalize"> // data.color 是 json 输入 --> 不是大写输入字符串

<md-input-container>
    <input mdInput placeholder="Severity" value="{{ data.color }}" readonly>
    <md-icon [ngClass]="data.color+''|capitalize"></md-icon>
  </md-input-container>

当我打印为 {{data.color |大写}}它工作正常输入=“名称” 打印为“名称”。任何帮助都会很棒。

【问题讨论】:

  • 没有错误信息?
  • 没有发现错误信息
  • 即使在控制台中?转换函数中的 args 参数有什么用途吗?
  • 尝试删除转换函数中的args。您不需要它,它显示为必填项。删除它可能会解决您的问题。
  • 它只是第二个或第三个参数的数组。无论如何删除并检查它不工作

标签: angular angular2-pipe


【解决方案1】:

你可以试试这个:

[ngClass]="data.color+'' | capitalize"

代替:

[ngClass]="data.color | capitalize"

并检查是否在模块的声明中声明了管道。 Plunker 显示了确切的实现。

【讨论】:

  • 看看我的plunk 我在哪里测试
  • @Karthigeyan 您是否在模块声明中添加了管道?
  • @Karthigeyan plunker 向您展示问题的具体实现。
  • plunker 看起来与模块中声明的矿管相同。我正在检查是否还有其他问题。
猜你喜欢
  • 1970-01-01
  • 2017-05-28
  • 2017-07-02
  • 2021-03-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
相关资源
最近更新 更多