【发布时间】:2015-11-07 03:29:58
【问题描述】:
我一定遗漏了一些非常简单的东西,但我不确定它是什么。
来自this answer 我们有代码:
app.directive('createTable', function ($compile) {
return {
link: function(scope, element, attrs) {
if (element.next().length) {
element.next().insertBefore(element);
}
var contentTr = angular.element('<tr><td>test</td></tr>');
contentTr.insertAfter(element);
$compile(contentTr)(scope);
}
}
});
目标是在ng-repeat 指令内的每个元素之后插入一些内容。
这部分有什么作用?
if (element.next().length) {
element.next().insertBefore(element);
}
我把它读成:“如果有一个元素,X,在element 之后,然后在X 之前粘贴element”。然而,情况似乎已经如此。
它显然做了一些事情,因为如果我删除这三行,所有元素都会添加到 tbody 的末尾,而不是被穿插。请参阅 jsfiddle of the working version 和 the jsfiddle when it's commented out。
【问题讨论】:
标签: javascript jquery html angularjs dom