2016-06-13 39 views
1

我有一个指令,承载一个模板,它采用JSON(包含一些数据用于构建表和一些方法来操纵数据)并生成一个表。在模板角ng-repeat动态生成复选框和字符串

相关的代码:

<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] ], 
    [...] 

} 

我的问题是:

有时表需要与checkboxs列,取决于数据。有没有办法改变我的模板,以便在必要时它会生成一列复选框而不是字符串?

例如:对于上面的JSON示例,假设我想将deleted列设置为复选框。所以如果一个条目被删除,该行将在deleted列下有一个未勾选的复选框。

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

这是否可行?有小费吗?

回答

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> 
+0

哦是啊哈哈。谢谢!! – user308553

+0

Np)标记为答案) – Vitalii

+0

有时间限制,必须等我检查答案之后 – user308553