首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在AngularJs中使用ng-repeat过滤(key,value)?

如何在AngularJs中使用ng-repeat过滤(key,value)?
EN

Stack Overflow用户
提问于 2013-02-09 21:25:53
回答 5查看 141.9K关注 0票数 116

我正在尝试做一些类似的事情:

代码语言:javascript
复制
<div ng-controller="TestCtrl">
    <div ng-repeat="(k,v) in items | filter:hasSecurityId">
        {{k}} {{v.pos}}
    </div>
</div>

AngularJs部分:

代码语言:javascript
复制
function TestCtrl($scope) 
{
    $scope.items = {
                     'A2F0C7':{'secId':'12345', 'pos':'a20'},
                     'C8B3D1':{'pos':'b10'}
                   };

    $scope.hasSecurityId = function(k,v)
    {
       return v.hasOwnProperty('secId');
    }
}

但不知何故,它向我显示了所有项目。如何过滤(key,value)?

EN

回答 5

Stack Overflow用户

发布于 2013-02-10 00:13:08

我的解决方案是创建自定义过滤器并使用它:

代码语言:javascript
复制
app.filter('with', function() {
  return function(items, field) {
        var result = {};
        angular.forEach(items, function(value, key) {
            if (!value.hasOwnProperty(field)) {
                result[key] = value;
            }
        });
        return result;
    };
});

在html中:

代码语言:javascript
复制
 <div ng-repeat="(k,v) in items | with:'secId'">
        {{k}} {{v.pos}}
 </div>
票数 46
EN

Stack Overflow用户

发布于 2015-12-10 06:16:24

您还可以在ng-if中使用ng-repeat

代码语言:javascript
复制
<div ng-repeat="(key, value) in order" ng-if="value > 0">
票数 33
EN

Stack Overflow用户

发布于 2013-10-22 22:07:49

或者简单地使用

代码语言:javascript
复制
ng-show="v.hasOwnProperty('secId')"

请在此处查看更新的解决方案:

http://jsfiddle.net/RFontana/WA2BE/93/

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14788652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档