在 Angular 过滤器表达式中使用竖线字符
Use the pipe character in an Angular Filter expression
我想使用'|' character in an Angular 1 Filter expression lie
{{ ctrl.items | map: 'name|id' | join: ',' }}
我可以使用某种字符转义吗?我知道 |字符用于调用过滤器,但我想用它来连接两个属性 'name' 和 'id'.
是的,我知道我可以在控制器中编写一个函数来连接这两个属性,但我很想知道是否可以在表达式中执行此操作。
PS:过滤器映射和连接来自此 repo: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
我想使用'|' character in an Angular 1 Filter expression lie
{{ ctrl.items | map: 'name|id' | join: ',' }}
我可以使用某种字符转义吗?我知道 |字符用于调用过滤器,但我想用它来连接两个属性 'name' 和 'id'.
是的,我知道我可以在控制器中编写一个函数来连接这两个属性,但我很想知道是否可以在表达式中执行此操作。
PS:过滤器映射和连接来自此 repo: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