【发布时间】:2020-03-01 21:13:20
【问题描述】:
我正在尝试构建一个定制的角管。该管道类似于十进制管道。
我正在屏幕上渲染多个项目。每个项目都有自己的价格,每个项目都有不同的小数位,并且动态来自数据库。我可以使用小数管道,但我必须为每个项目单独指定小数位。所以基本上我想要做的是,创建一个自定义管道,将价值(价格)转换为其自己的小数位,而不是我为每个项目指定小数位。
我正在使用我在下面指定的两个对象(项目和小数位)。
'item': {
'itemID': 'id',
'name:' 'itemName'
'feature': 'feature'
'price': 200
}
'decimalPlace': {
'decimals': 2
'itemID': 'id'
}
目前我正在尝试做的是在管道构造函数中调用 getDecimals 方法(它返回 decimalsPlaces 对象),然后我使用字符串插值指定项目名称。 示例:
{{ item.price | customisedPipe: {{ item.itemId }} }}
在管道类中,我使用 find() 函数比较 'item.itemId' 和 decimalPlace.decimals,如果匹配,然后我将值转换为返回小数位值。
这种方式有效,但有人告诉我不要使用这种方式。因此,如果有人可以提出任何其他解决方案,我将不胜感激。
如果这个问题没有意义,请告诉我。
【问题讨论】:
-
管道参数格式错误。应该是
customisedPipe: 'item.itemId',否则你展示的内容没有错。但是对您在管道代码中所做的事情的解释令人困惑(至少对我而言)。也许将该代码放在问题中。或者也许这将是一个不同的问题!
标签: angular typescript angular-pipe