在角度过滤器表达式中使用管道字符

问题描述:

我想使用'|'在角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" > 
+0

能否请您给我更多的细节你想acheive什么。项目是否是一个列表?你可以请更新输入和预期的输出 – Vikash

+0

@Vikash我更新了问题 –

+0

请找到下面的解决方案。 – Vikash

您必须创建自定义过滤器以形成您提及的值。

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

它的工作原理,谢谢 –