2016-09-09 7 views
0

の配列によって、私はすべてのイベントを表示するには、ユーザがローカルストレージにイベントを保存することができますし、配列フィルター角度データは、IDS

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

に保存されている私のデータを含むJSONファイル

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

を持っていますページ上で;

<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> 

私はローカルストレージを問い合わせる場合、私は

を取得し、それは誤り Error: filter:notarray Expected array but received: 0を与え、彼らが $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 }"> 

動作しないだけで、ユーザーのイベントを表示したいです

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.idのイベント(MB未定義のIDを持ついくつか)があるようですリピータ

event in events track by event.id 

のthats。

関連する問題