通过ng repeat内的关键帧过滤对象

Filter an object by keys inside ng-repeat

本文关键字:关键帧 过滤 对象 ng repeat 通过      更新时间:2023-09-26

我想排除未列为默认值的其他项目,但它仍然显示每个项目

<ul ng-controller="Ctrl" class="dropdown-menu">
    <li ng-repeat="(key, value) in Employee.KeyValue | filter:DefaultKeys(key) ">{{key}}</li>
</ul>
angular.module('app', []);
function Ctrl($scope) {
    $scope.DefaultKeys = function(item) {
        var defaultItems = ["SSS No.", "TIN"];
        return defaultItems.indexOf(item);
    };
    $scope.Employee =
        {
            Code: '123',            
            KeyValue:
            {
                'TIN': '9038468',
                'Facebook' : 'https://fb.com/abc'
            }
        }
}

检查这个小提琴

如有任何帮助,请

您可以创建一个自定义过滤器。

过滤器

angular.module('app', []).filter('DefaultKeys', function () {
    return function (item) {
        var keys = {};
        angular.forEach(['SSS No.', 'TIN'], function (key) {
            if (item[key] !== undefined) {
                keys[key] = item[key];
            }
        });
        return keys;
    };
});

Html

<ul ng-controller="Ctrl" class="dropdown-menu">
    <li ng-repeat="(key,value) in Employee.KeyValue | DefaultKeys">{{key}}</li>
</ul>

DEMO