2016-09-09 174 views
0

我具有包含JSON文件我的數據濾波器角度數據

[{"id":"349","title":"event 1"},{"id":"350","title":"event 2"},{"id":"351","title":"event 3"}] 

用戶可以事件保存到本地存儲和保存在一個陣列

$storage.myEvents = ["349","350"] 

我顯示所有事件在頁面上;

<ion-item class="item-icon-right item-brown" ui-sref="detail({id: event.id})" ng-repeat="event in events track by event.id "> 
     <h2 class="positive"><b>{{event.title}}</b></h2> 
</ion-item> 

我想只顯示用戶的事件,他們已經存儲在$storage.myEvents但我的過濾器不工作

<ion-item class="item-icon-right item-brown" ui-sref="detail({id: event.id})" 
    ng-repeat="event in events track by $index | filter: {id: $storage.myEvents }"> 

它給人的錯誤Error: filter:notarray Expected array but received: 0,如果我查詢本地存儲,我得到

localStorage["ngStorage-myEvents"] 
"["349","350"]" 

如果我改變過濾器

filter: {id: JSON.parse($storage.myEvents)} 

我仍然得到相同的錯誤...

我該如何解決這個問題?

回答

1

您可以使用自定義過濾器。

$scope.myFilter = function (e) { 
    var s = $scope.$storage.myEvents; 
    if (s.indexOf(e.id) != -1) return true; 
    return false; 
    } 

    <ion-item class="item-icon-right item-brown" ui-sref="detail({id: event.id})" 
     ng-repeat="event in events | filter: myFilter track by $index"> 
0

那是一箇中繼器

event in events track by event.id 

好像有與同event.id事件(MB一些未定義ID)的陣列。