angular ng-repeat动态生成复选框和字符串

时间:2016-06-13 18:12:37

标签: angularjs

我有一个指令,它托管一个接收JSON的模板(包含一些用于构建表的数据,以及一些操作数据的方法)并生成一个表。

模板中的相关代码:

 <table class="table" id="table_{{table.name}}">
        <thead>
          <tr>
            <th ng-repeat="header in table.headers track by $index">{{header}}</th>
          </tr>
        </thead>
        <tbody>
          <tr ng-repeat="row in table.rows track by $index">
            <td ng-repeat="item in row track by $index"
                ng-Click="table.selectedRow(row)">
               {{item}}
            </td>
          </tr>
        </tbody>
      </table>

将json输入此模板的示例

$scope.searchTable = {
    headers: ["title", "deleted"],
    rows: [ ["ABC", true],
            ["DEF", false] ],
    [...]

}

我的问题是:

有时表格需要一个带复选框的列,具体取决于数据。有没有办法更改我的模板,以便在必要时生成一列复选框而不是字符串?

例如:对于上面的JSON示例,假设我希望deleted的列成为复选框。因此,如果删除某个条目,则该行将在deleted列下具有未选中的复选框。

这有什么意义吗?一切都是动态生成的,所以我不知道哪个列是复选框。这一切都取决于页面从服务器获取的数据。因此在示例中:服务器将告诉客户端哪个条目是可读的,然后我将生成该JSON并将其提供给模板。我应该如何构建我的JSON和模板

这甚至可行吗?有什么提示吗?

1 个答案:

答案 0 :(得分:2)

  <tr ng-repeat="row in table.rows track by $index">
          <td ng-repeat="item in row track by $index">
          <div data-ng-if="item.type!=='checkbox'" ng-Click="table.selectedRow(row)"></div>
          <div data-ng-if="item.type==='checkbox'"> <input type="checkbox" /></div>

               {{item}}
            </td>
  </tr>