-1

我打算使用ng-repeat來顯示按對象值過濾的列表。這裏是我嘗試的plukr https://plnkr.co/edit/vD4UfzM4Qg7c0WGTeY18?p=previewangularjs過濾器多維對象json

以下返回所有我的JSON names預期。

<li ng-repeat="item in collection_data">{{navitem.name}}</li> 

現在我想篩選,只顯示有"foreign_lang": "es",想在這個JSON片段

{ 
    "id": "ddb06ba2-6348-4d45-9e63-a6fa3632e5c2", 
    "created_at": "2015-10-12T18:34:15.668Z", 
    "updated_at": "2016-04-14T15:55:37.433Z", 
    "custom_attributes": { 
     "Display Name": "Activos en Español", 
     "foreign_lang": "es", 
     "display_boxes": "false" 
    }, 
    }, 

該項目的名稱,所以我做這個過濾功能

$scope.filterByDisplay = function() { 
    $filter('filter')($scope.collection_data, ['foreign_lang', 'es']); 
} 

,並呼籲它是這樣的。

<li ng-repeat="item in collection_data" | filter: filterByDisplay>{{navitem.name}}</li> 

我沒有得到任何控制檯錯誤,但我什麼都沒有返回。

如何通過此集合正確過濾僅返回'foreign_lang', 'es'作爲json中的值的項目?參見plunkr看到一個工作示例https://plnkr.co/edit/vD4UfzM4Qg7c0WGTeY18?p=preview

+0

[以ng重複過濾嵌套對象與搜索輸入域(的可能的複製http://stackoverflow.com/questions/41743724/filtering-nested-objects-in-ng - 重複搜索輸入字段) – Icarus

回答

2

第三次嘗試(因爲問題已修改)。使用過濾器函數分別檢查每個對象,並僅返回通過真相測試的對象。

$scope.filterByDisplay = function(value) { 
    return (value.content) 
     && (value.content.custom_attributes) 
     && (value.content.custom_attributes.foreign_lang === "es"); 
} 

Updated Plunk - Using Filter Function

+0

不要忘記標記爲答案!謝謝 –