Angular 角度:在ts内部使用管道,而不是在html中

Angular 角度:在ts内部使用管道,而不是在html中,angular,pipe,Angular,Pipe,我有一个管道,它根据来自json数据的值返回css字符串 主要成分 this.coords.push(新的L.Marker([i.lat,i.lng]){ 旋转角度:即航向, 旋转原点:'底部中心', 图标:新的L.DivIcon({ html:` ` }) }).addTo(此.map) 问题是当我运行我的项目时,我只得到相同的管道名称输出,我的意思是管道看起来不工作! 输出 你有没有试过在没有括号的情况下使用ngClass [ngClass]='i.heading | heading'

我有一个管道,它根据来自json数据的值返回css字符串

主要成分

this.coords.push(新的L.Marker([i.lat,i.lng]){
旋转角度:即航向,
旋转原点:'底部中心',
图标:新的L.DivIcon({
html:`
`
})
}).addTo(此.map)
问题是当我运行我的项目时,我只得到相同的管道名称输出,我的意思是管道看起来不工作! 输出



你有没有试过在没有括号的情况下使用
ngClass

[ngClass]='i.heading | heading'
否则,可以在组件类内运行管道:

您可以将管道注入构造函数并运行转换函数

@组件({…})
导出类MyComponent{
构造函数(私有headingPipe:headingPipe){}
转换标题(标题:字符串){
返回此.headingPipe.transform(heading);
}
}
在你的模板中

<img [ngClass]="transformedHeading(i.heading)"/>

这是因为您使用的是
ngClass='…'
而不是
[ngClass]='…'

对于前者,字符串按原样传递而不进行求值。对于后者(使用
[]
),您的语句将实际进行求值,并且将考虑管道。

这样使用

<img src="assets/icon/airplan.jpg" style="width: 20px;height: 25px;" [ngclass]="272|heading">


现在管道将返回您想要的内容。

如果它在TS中,为什么不使用函数而不是管道?类似于
,因为标题的值是数字,您知道css不是接受数字,如
.12{}这能回答你的问题吗?也是有帮助的。也可能是因为你说它返回了CSS,所以在这种情况下考虑使用<代码> [ngStult] 。还要注意,<代码> [NGCy] 和<代码> [ngStult] < /Cord>期望对象为值。如<代码> [ngStult]={{宽}:SMOVEAR }
l以前做过,但仍然存在相同的问题,然后您的管道没有导入到组件的module@AliGhassan
ngClass
不会工作,因为angular不会呈现代码的那一部分。相反,
传单
会自己注入模板。谢谢。你救了我。css类的名称现在显示在nglcass中,但他显示了esn不适用。知道为什么吗?请参见图[您能否尝试将
[ngClass]
替换为
class
?请将方括号也移除。