AngularJS - 在指令中追加元素后面的行

kub*_*lav 10 angularjs angularjs-directive angularjs-ng-repeat

我的问题和这个问题类似,但我想要追加行,而不是在前面添加行.

这不起作用:

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);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

noj*_*noj 17

这样做的工作:

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);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/3gt9J/3/

  • jqLit​​e没有insertAfter,所以如果你不使用jQuery,你必须使用.after. (18认同)