2013-07-01 18 views
1

是否anyoen知道如何檢查(在View)的ID給定的數組中存在元素?Angularjs - 表示基於ID的陣列存在

可以說我有一個數組,像這樣:

var arr = [123, 456, 789]; 

和像這樣的數據源:

var data = [ 
    {id: 123, name: 'foo'}, 
    {id: 456, name: 'bar'}, 
    {id: 789, name: 'baz'} 
]; 
視圖

現在同時遍歷data陣列我想顯示/隱藏基於id存在arr中的元素,如下所示:

<div ng-repeat="item in data"> 
    <span ng-show="item.id in arr"></span> 
</div> 

上面的代碼,當然item.i in arr並不明顯的原因工作。任何人都知道如何實現這一功能呢?且不說NG秀塊應該總是踢在每當arr陣列被改變。

在此先感謝。

+0

任何特別的原因,爲什麼這個問題是downvoted? – Pono

回答

3

你可以只是在你的範圍內創建一個方法

function MyCtrl($scope) { 
    $scope.data = ... 

    $scope.enabled = ... 


    $scope.visible = function (id) { 
    return $scope.enabled.indexOf(id) > -1 
    } 

} 

<span ng-show="visible(item.id)" ></span>