过滤器无法与嵌套数据一起正常工作?

时间:2014-04-15 07:31:17

标签: javascript angularjs

我希望通过使用过滤器隐藏和显示数据来对数据进行分组。

我在ng-repeat中添加了filter: {tabs.tabId: currentTab},但它返回空白。当我删除此行时,数据显示,这意味着过滤器导致了一些问题。

demo http://jsfiddle.net/8Ub6n/4/

1 个答案:

答案 0 :(得分:0)

这适用于深层嵌套值。

我建议您制作自己的过滤器:

<ul ng-repeat="friend in user">
   <li ng-repeat="relation in friend.relationship | RelationFilter:currentTab">{{relation.name}} ({{relation.points}}points)</li>
</ul>

[..]

app.filter("RelationFilter", function () {
    return function (input, currentTab) {
        var output = [];

        for (var i in input) {                
            if (input[i].tabs.length >= 1 
                && input[i].tabs[0].tabId == currentTab) {               
                output.push(input[i]);
            }
        }      
        return output;
    };
});

检查JSFiddle http://jsfiddle.net/8Ub6n/11/