Angularjs - 根据数组中id的存在显示元素

时间:2013-07-01 14:05:18

标签: javascript angularjs

是否知道如何检查(在视图中)给定数组中是否存在id?

假设我有一个像这样的数组:

var arr = [123, 456, 789];

和这样的数据源:

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

现在在视图中迭代data数组时,我希望根据idarr的存在来显示/隐藏元素,如下所示:

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

上述代码item.i in arr当然不能用于显而易见的原因。任何人都知道如何实现该功能?更不用说ng-show块应该始终在arr数组被更改时启动。

提前致谢。

1 个答案:

答案 0 :(得分: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>