我构建了一个允许将过滤器作为参数传递的简单组件,并且我尝试在组件视图中使用该参数,但我不知道如何操作。它作为字符串传递,因此在组件视图中被视为字符串,因此无法正常工作。
基本上它看起来像这样:
<number-compare value="some.value" filter="currency"/>
在组件视图中:
<span> {{ numCompCtrl.value | numCompCtrl.value.filter }} </span>
但这不起作用,因为它被解释为{{ 10 | "currency" }}
我试图在控制器中处理它,并在那里应用过滤器,但是当过滤器需要多个参数时它会变得非常混乱,所以到目前为止最简单的方法就是如果我可以使用简单的方法。
有可能吗?
答案 0 :(得分:0)
实际上,我刚刚发现我之前使用另一个过滤器作为解决方法解决了这个问题
(function() {
'use strict';
angular
.module('core')
.filter('dynamic', dynamic);
dynamic.$inject = ['$interpolate'];
function dynamic($interpolate) {
return function(value, name) {
if (!name) {
return value;
}
var result = $interpolate('{{ value | ' + name + ' }}');
return result({ value: value });
};
}
})();
并像这样使用:
{{ numCompCtrl.value | dynamic: numCompCtrl.value.filter }}