javascript - 需要 ng-repeat 的 Angular 方向吗?

标签 javascript angularjs angularjs-ng-repeat angular-ng-if

我对 ng-repeat 指令没有什么复杂的结构,我在遍历它时卡住了。我只是在数组中发布数据表示 JSON 格式

{"data":[
         ["sameer","1001",
          [
           {"button_icon":"fa fa-pencil",
            "button_tt":"create invoice",
            "button_color":"btn-success"
           },
           {"button_icon":"fa fa-pencil",
            "button_tt":"create invoice",
            "button_color":"btn-danger"
           }
          ]
         ],
         ["jack","1002",
          [
           {"button_icon":"fa fa-pencil",
            "button_tt":"create invoice",
            "button_color":"btn-success"
           },
           {"button_icon":"fa fa-pencil",
            "button_tt":"create invoice",
            "button_color":"btn-danger"
           }
          ]
        ]
}

它是一个数组(array(array())),最后一个内部数组用于将附加到每一行的按钮。我在附加该按钮时被卡住了。我已经在使用嵌套的 ng-repeat,但对第三个感到困惑。

这是我的html

<tbody>
    <tr ng-repeat = "row in list.data">

      <td ng-if = "(row.length - 1) != $index"  class="text-center"  ng-repeat = "val in row track by $index" ng-cloak>{{val}}</td>
      <td ng-if = "(row.length - 1) == $index" class="text-center">
          <div class="btn-group" ng-cloak>
            <a ng-repeat = "btn in row" data-toggle="tooltip" title="{{btn.button_tt}}" class="btn btn-xs {{btn.button_color}}" data-original-title="Edit" ng-click="viewExpense(1)"><i class="{{btn.button_icon}}"></i></a>
          </div>
        </td>
    </tr>

最佳答案

我相信你还需要一个循环。

row in list.data中的row是第一层:

["sameer","1001",
      [
       {"button_icon":"fa fa-pencil",
        "button_tt":"create invoice",
        "button_color":"btn-success"
       },
       {"button_icon":"fa fa-pencil",
        "button_tt":"create invoice",
        "button_color":"btn-danger"
       }
      ]
 ]

btn in btn in row 是第二层也是一个数组:

[
    {"button_icon":"fa fa-pencil",
     "button_tt":"create invoice",
     "button_color":"btn-success"
    },
    {"button_icon":"fa fa-pencil",
      "button_tt":"create invoice",
      "button_color":"btn-danger"
    }
]

你应该像这样添加第三层:

<div class="btn-group" ng-cloak>
    <div ng-repeat = "innerRow in row">
        <a ng-repeat = "btn in innerRow" data-toggle="tooltip" title="{{btn.button_tt}}" class="btn btn-xs {{btn.button_color}}" data-original-title="Edit" ng-click="viewExpense(1)"><i class="{{btn.button_icon}}"></i></a>
    </div>
</div>   

希望对你有帮助

关于javascript - 需要 ng-repeat 的 Angular 方向吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44240645/

相关文章:

javascript - 后退按钮 - 跳过 anchor

javascript - 访问多维数组时出现问题

javascript - Angular 不会显示对象

javascript - Angular 1 的初始化代码应该放在哪里?

javascript - 如何从 Google 日历上的一个事件创建链式事件?

angularjs - 与 Bootstrap 模式弹出窗口后面的内容交互

javascript - 如何对数组中的特定项目进行双向数据绑定(bind),其中数组索引是动态确定的?

performance - Angularjs - 优化 ngrepeat 的观察者以仅观察集合的某些属性

angularjs - 从 ng-repeat 中的指令将参数传递给作用域函数

javascript - 你如何从 AngularJS ng-repeat 中排除项目