Javascript Angular.js按精确值过滤(严格相等)
我有以下html代码Javascript Angular.js按精确值过滤(严格相等),javascript,angularjs,Javascript,Angularjs,我有以下html代码 <ul ng-repeat="friend in friends | filter: { age: '2' } | orderBy: 'name' "> <li>{{friend.name}}</li> </ul> 它回来了 Linda Markus Othello Peter ng过滤器中的比较是如何工作的?我怎样才能得到只有2岁的朋友 Peter 从Angular 1.2开始,您只需将strict参数(
<ul ng-repeat="friend in friends | filter: { age: '2' } | orderBy: 'name' ">
<li>{{friend.name}}</li>
</ul>
它回来了
Linda
Markus
Othello
Peter
ng过滤器中的比较是如何工作的?我怎样才能得到只有2岁的朋友
Peter
从Angular 1.2开始,您只需将strict参数(true)添加到过滤器中,以便它查找精确匹配,并将
2
作为数字而不是字符串传递:filter:{age:2}:true
angular.module('myApp',[])
.controller('myCtrl',函数($scope){
$scope.friends=[
{姓名:“彼得”,年龄:2},
{姓名:“Pablo”,年龄:55},
{姓名:“琳达”,年龄:20},
{姓名:“玛尔塔”,年龄:37},
{姓名:“奥赛罗”,年龄:20},
{姓名:“马库斯”,年龄:32}
];
})
;代码>
- {{friend.name}
添加了在设置严格参数(true)后将模型值转换为我工作的数值的指令
为了与你的过滤器完全匹配,你必须写下一个自定义过滤器。参考此问题检查此自定义过滤器示例,你可以看一看。我尝试了你所说的,但不起作用。我编辑了评论,实际上它在链接中包含了我:-)谢谢,我解决了它,实际上存在版本问题,它不会出现在1.0.x中工作,但在1.2.x中工作:-)@squiroid刚要告诉ya=D答案更新为包含版本。@OP m59答案很棒,但请记住您使用的版本:-)
Peter
myApp.directive('convertNumber', [function() {
return {
require: 'ngModel',
link: function(scope, el, attr, ctrl) {
ctrl.$parsers.push(function(value) {
return parseInt(value, 10);
});
ctrl.$formatters.push(function(value) {
if (value != null) {
return value.toString();
};
});
}
}
}]);