javascript - 根据Angular中的ng-repeat索引查找数组项

标签 javascript arrays angularjs angularjs-ng-repeat

在我的应用程序中,我有 2 个对象数组。layout 数组用于创建 twitter bootstrap 布局。该数组如下所示:

 $scope.layout = [
  {c:[{size:12}]},
  {c:[{size:2},{size:3},{size:4},{size:3}]},
  {c:[{size:3},{size:5},{size:4}]}
];

你可以在这个 jsbin 中看到这个数组是如何工作的另一个数组是 items 数组,该数组如下所示:

 $scope.items =[
   {row:1,column:0,names:['Jack','Daniel']},
   {row:3,column:3,names:['Eli','Bill']},
   {row:2,column:1,names:['Fred','David']}
];

这是我使用的中继器:

<div ng-repeat="(ri,r) in layout" class="row">

  <div ng-repeat="(ci,c) in r.c" class="col-md-{{c.size}} col-sm-{{c.size}} col-xs-{{c.size}} col-lg-{{c.size}}  bi"> Row{{ri}}-Column{{ci}}
         //Maybe other repeater come here

  </div>
</div>

现在我想当我想在第1行第0列中显示Jack,Daniel时,这个1和0是第一个和第二个中继器的中继器中的r和c。因此,当中继器创建 row 2 column 1 时,也会在 $scop.item 上重复并查找相关名称。但我不知道如何在 $scope.item 中查找项目。这是我的 jsbin

最佳答案

你可以这样做:

<div ng-repeat="(ri,r) in layout" class="row">
  <div ng-repeat="(ci,c) in r.c" class="col-md-{{c.size}} col-sm-{{c.size}} col-xs-{{c.size}} col-lg-{{c.size}} bi">
    {{getNames(ri, ci)}}
  </div>
</div>

在 Controller 中定义 getNames 的位置:

$scope.getNames = function(r, c) {
  var items = $scope.items;
  for (var i = 0; i < items.length; i++) {
    if (items[i].row == r && items[i].column == c) {
      return items[i].names;
    }
  }
  return '';
};

演示:http://jsbin.com/sumuwigo/1/edit

关于javascript - 根据Angular中的ng-repeat索引查找数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23798533/

相关文章:

angularjs - 为什么对 $scope 字段的更改不会传播到另一个字段?

javascript - 在 angular-js 应用程序中使用 Google 跟踪代码管理器 'click-listener' 时,“无法对数据层进行字符串化”

javascript - Jquery Accordion 实现中的抖动

c - `restrict` 关键字隐含的严格别名级别是什么?

c++ - 类 C 数组模板特化

javascript - 从数组中删除项目,重新排序项目,然后放回去(reactjs)

angularjs - 模糊除选定项之外的所有列表项

javascript - Snap svg Snap.animation() 函数

javascript - JavaScript 上的 String.ToCharArray() 等效吗?

javascript - 在 HTML、Javascript 和 CSS 中绘制一个框