猿问

如何在AngularJs中使用ng-repeat过滤(键,值)?

如何在AngularJs中使用ng-repeat过滤(键,值)?

我想做的事情如下:

<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');
    }}

但不知何故,它向我展示了所有项目。如何过滤(键,值)?


当年话下
浏览 1226回答 3
3回答

三国纷争

我的解决方案是创建自定义过滤器并使用它:app.filter('with',&nbsp;function()&nbsp;{ &nbsp;&nbsp;return&nbsp;function(items,&nbsp;field)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;result&nbsp;=&nbsp;{}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;angular.forEach(items,&nbsp;function(value,&nbsp;key)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!value.hasOwnProperty(field))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result[key]&nbsp;=&nbsp;value; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result; &nbsp;&nbsp;&nbsp;&nbsp;};});并在HTML中:&nbsp;<div&nbsp;ng-repeat="(k,v)&nbsp;in&nbsp;items&nbsp;|&nbsp;with:'secId'"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{k}}&nbsp;{{v.pos}}&nbsp;</div>

慕运维8079593

你也可以使用ng-repeat具有ng-if:<div&nbsp;ng-repeat="(key,&nbsp;value)&nbsp;in&nbsp;order"&nbsp;ng-if="value&nbsp;>&nbsp;0">
随时随地看视频慕课网APP
我要回答