Angularjs-显示基于数组中id存在的元素

Angularjs - showing element based on a presence of id in array

本文关键字:id 存在 元素 数组 显示 于数组 Angularjs-      更新时间:2023-09-26

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

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

var arr = [123, 456, 789];

和这样的数据源:

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

现在,在视图中,当在data阵列上迭代时,我想根据arrid的存在来显示/隐藏元素,如下所示:

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

由于明显的原因,上面的代码item.i in arr当然不起作用。有人知道如何实现该功能吗?更不用说,每当arr数组发生更改时,ng show块应该总是启动。

提前谢谢。

您只需在您的作用域中创建一个方法

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

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

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