我有一系列价格( 0
、 0.99
、 1.99
...等),我想在 <select>
中显示它们.
我想使用 Angular 的 ng-options
像这样
<select ng-model="create_price" ng-options="obj for obj in prices"/>
如上面显示的,它将生成 0
的选择, 0.99
, 1.99
...
但我想在代码中使用过滤器,以便每次出现“价格”一词(或类似的内容)时,代码都会运行一个函数来将 float 更改为字符串并呈现( free
、 0.99$
、 1.99$
... 等)。
我有办法做到这一点吗?
谢谢
最佳答案
有一个更好的方法:
app.filter('price', function() {
return function(num) {
return num === 0 ? 'free' : num + '$';
};
});
然后像这样使用它:
<select ng-model="create_price" ng-options="obj as (obj | price) for obj in prices">
</select>
这样,过滤器对于单个值很有用,而不是仅对数组进行操作。如果您有对象和相应的格式过滤器,这非常有用。
如果需要,过滤器也可以直接在代码中使用:
var formattedPrice = $filter('price')(num);
关于angularjs - 使用 ng-options 上的过滤器来更改显示的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16644402/