我一定錯過了一件非常簡單的事情,但我不確定它到底是什麼。`element.next()。insertBefore(element)`做了什麼?
從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。
我可能不會正確解析這個。 'X'永遠不會在'X.next()'之前? 'element'在這種情況下總是一個元素。 – Claudiu
哦,哈哈,我明白了。我誤解了'X.insertBefore(Y)'在'X'之前粘貼'Y',而在'Y'之前粘貼'X'。 – Claudiu