我正在寻找一种向表添加行的方法。我的数据结构如下所示:
rows = [ { name : 'row1', subrows : [{ name : 'row1.1' }, { name : 'row1.2' }] }, { name : 'row2' } ];
我想创建一个看起来像这样的表:
table row1 row1.1 row1.2 row2
angular js ng-repeat有可能吗?如果没有,那将是一种“成角度的”方式呢?
编辑:展平数组将是一个不好的解决方案,因为如果我可以遍历子元素,我可以在单元格,其他css类等中使用不同的html标签。
您将无法使用ng-repeat做到这一点。但是,您可以使用指令来实现。
<my-table rows='rows'></my-table>
小提琴。
myApp.directive('myTable', function () { return { restrict: 'E', link: function (scope, element, attrs) { var html = '<table>'; angular.forEach(scope[attrs.rows], function (row, index) { html += '<tr><td>' + row.name + '</td></tr>'; if ('subrows' in row) { angular.forEach(row.subrows, function (subrow, index) { html += '<tr><td>' + subrow.name + '</td></tr>'; }); } }); html += '</table>'; element.replaceWith(html) } } });