我想根据控制器设计一个表。基本上像一个简单的控制器:使用angularjs修改html表的列数
function Main($scope) {
$scope.row = {
columns: [{
type: 'single',
name: 'col1'
}, {
type: 'double',
name: 'col2'
}]
};
}
我想改变的基于类型的列tr
S中的数目。基本上所需的输出是:
<table>
<tr>
<!-- for column in columns -->
<!-- If column.type is single have single td -->
<!-- If column.type is double have two td -->
<td>col1</td>
<td>col2</td>
<td>col2</td>
</tr>
</table>
我有一个小提琴,你可以玩:http://jsfiddle.net/basarat/7G6fF/
我一直在使用NG重复,跨度尝试,但问题是,span
从DOM由去除浏览器,因为它是TR的无效子:
<table>
<tr>
<!-- for column in columns -->
<!-- If column.type is single have single td -->
<!-- If column.type is double have two td -->
<span ng-repeat="column in row.columns">
<span ng-switch="column.type">
<span ng-switch-when="single"><td>{{column.name}}</td></span>
<span ng-switch-when="double"><td>{{column.name}}</td><td>{{column.name}}</td></span>
</span>
</span>
</tr>
</table>
你在这里呈现的方式(在小提琴中)看起来不像表格数据。你能否详细说明如果每个表格单元格的数量可能不同,那么多行将不得不进行交互?(我至少期待在tr上重复ng)。也许解决方案是不使用表? –
@SimonGroenewolt将有一个ng-repeat的'tr's。它是按行排列的,但是我简化了这个例子,只使用了一个'row'和一个'tr'来隐藏复杂度 – basarat
ok,理解。但是,如果每行数据可能不同,为什么还要使用表格呢? –