的
|是角构造,找到一个定义的过滤器具有该名称和它适用于左侧的值。我认为您需要做的是创建一个以过滤器 名称
作为参数的过滤器,然后调用适当的过滤器(jsfiddle)(改编自M59的代码):
HTML:
<div ng-repeat="row in list"> {{ row.value | picker:row.formatter }}</div>
Javascript:
app.filter('picker', function($filter) { return function(value, filterName) { return $filter(filterName)(value); };});
感谢@karlgold的评论,这是一个支持参数的版本。第一个示例
add直接使用过滤器将数字添加到现有数字,第二个示例使用过滤器按字符串
useFilter选择
add过滤器并将参数传递给它(jsfiddle.):
HTML:
<p>2 + 3 + 5 = {{ 2 | add:3:5 }}</p><p>7 + 9 + 11 = {{ 7 | useFilter:'add':9:11 }}</p>
Javascript:
app.filter('useFilter', function($filter) { return function() { var filterName = [].splice.call(arguments, 1, 1)[0]; return $filter(filterName).apply(null, arguments); };});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)