在角度过滤器表达式中使用管道字符
问题描述:
我想使用'|'在角1筛选器表达式谎言的字符在角度过滤器表达式中使用管道字符
{{ ctrl.items | map: 'name|id' | join: ',' }}
是否有某种字符逃跑我可以使用?我知道|字符用于调用Filter,但我想用它来连接两个属性'name'和'id'。
是的,我知道我可以在控制器中编写一个函数来连接两个属性,但如果在表达式中有一种方法可以执行此操作,我很感兴趣。
PS:滤波器图,并加入来自该回购:https://github.com/a8m/angular-filter
更新:
在控制器:
ctrl.items = [{ name: 'ape', id:1 }, { name: 'john', id:2 }];
在模板:
<input type='hidden' value="{{ ctrl.items | map: 'name|id' | join: ',' }}" >
预计产量:
<input type='hidden' value="ape|1,john|2" >
答
您必须创建自定义过滤器以形成您提及的值。
var app = angular.module('myApp', []);
app.filter('map', function() {
return function(input, propName) {
var prop = propName.split("|");
return input.map(function(item) {
return item[prop[0]] +"|"+ item[prop[1]];
});
};
});
,然后你输入文字
<input type="text" value="{{(ctrl.items | map:'name|id').join(',')}}"/>
请找工作Plnkr Working Plnkr
+0
@Sven Lauterbach你试过这个解决方案吗? – Vikash
+0
它的工作原理,谢谢 –
能否请您给我更多的细节你想acheive什么。项目是否是一个列表?你可以请更新输入和预期的输出 – Vikash
@Vikash我更新了问题 –
请找到下面的解决方案。 – Vikash