我正在尝试做类似的事情:
<div ng-controller="TestCtrl"> <div ng-repeat="(k,v) in items | filter:hasSecurityId"> {{k}} {{v.pos}} </div> </div>
AngularJs部分:
function TestCtrl($scope) { $scope.items = { 'A2F0C7':{'secId':'12345', 'pos':'a20'}, 'C8B3D1':{'pos':'b10'} }; $scope.hasSecurityId = function(k,v) { return v.hasOwnProperty('secId'); } }
但是不知何故,它向我展示了所有物品。如何筛选(键,值)?
Angular 过滤器只能通过angular的API应用于数组,而不能应用于对象-
“从数组中选择项的子集,并将其作为新数组返回。”
您在此处有两个选择: 1)移至$scope.items数组或 -2)预过滤ng-repeat项目,如下所示:
$scope.items
ng-repeat
<div ng-repeat="(k,v) in filterSecId(items)"> {{k}} {{v.pos}} </div>
并在控制器上:
$scope.filterSecId = function(items) { var result = {}; angular.forEach(items, function(value, key) { if (!value.hasOwnProperty('secId')) { result[key] = value; } }); return result; }
jsfiddle :http : //jsfiddle.net/bmleite/WA2BE/