我有一个严重的问题。我必须用一些组合数据实现一个表格视图。我必须在表格行中显示一些数据,后面的行必须是有关该行的一些详细信息。不仅如此,用户应该能够隐藏点击该行的详细信息。
例如,模型是某个人的姓名和姓氏。他有孩子,他们的名字必须显示在他名字之后的下一行。根据我的模型,孩子的名字存储在他们父亲的属性中,这是一个与其自身相似的对象数组。孩子不能有其他孩子。
问题是我无法在一次运行 ngRepeat 循环中处理多个表行。我还尝试向 中添加另一个指令,但没有帮助,因为 ng-repeat 的 transclude 设置为“元素”。之后我尝试修改 ng-repeat 指令,几乎达到了效果,但我不得不在指令编译函数的中间创建元素。这是一个非常糟糕的主意,因为代码变得非常脏并且难以支持。
这就是我修改 ng-repeat 指令的方式:(仅显示更改的部分)
if (!last) {
linker(childScope, function(clone){
var el = clone; //angular.element(template);
cursor.after(el);
if (!childScope.item.innerHidden) {
for (var i = 0; i < childScope.item.innerItems.length; i++) {
var innerItem = childScope.item.innerItems[i];
console.log(innerItem);
var elem = angular.element('<tr><td>' + innerItem.value1 + '</td><td>' +
innerItem.value2 + '</td></tr>');
el.after(elem);
el = elem;
}
}
last = {
scope: childScope,
element: (cursor = el),
index: index
};
nextOrder.push(value, last);
});
}
我能做什么?我在想一些可能是 的子级和父级的 html 标签,这可能吗?我可以对其应用 ng-repeat 并管理其中的表格行。或者还有其他有趣的可能性吗?