我有一个指令,它托管一个接收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和模板
这甚至可行吗?有什么提示吗?
答案 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>