私の質問は これ と似ていますが、行を前に付ける代わりに、追加したいと思います。
これは機能しません:
app.directive('createTable', function ($compile) {
return {
link: function (scope, element, attrs) {
var contentTr = angular.element('<tr><td>test</td></tr>');
contentTr.parentNode.insertBefore(element, contentTr.nextSibling);
$compile(contentTr)(scope);
}
}
});
これは仕事をします:
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);
}
}
});
私はあなたが必要だと思います
app.directive('createTable', function ($compile) {
return {
link: function (scope, element, attrs) {
var contentTr = angular.element('<tr><td>test</td></tr>');
contentTr.insertAfter(element);
$compile(contentTr)(scope);
}
}
});
デモ: フィドル
それが機能するまで数分あったので、何かを追加したかっただけです。プロジェクトにjQueryがない場合、insertAfter
を使用することはできません。 jQuery API .after() からafter()
を使用するだけです
他の子との間のディレクティブにいくつかの要素を追加する必要がありました。
element.children().eq(0).after(angular.element('<p>Test</p>'));