如何使用angular创建tr / td html元素

时间:2013-08-14 17:30:31

标签: angularjs

我需要创建一个带有角度嵌套td的tr。这样做的角度方式是使用angular.element('< tr>')。它适用于所有元素 - 除了tr或td。对于这两个人来说,调用返回一个空数组。

顺便说一句,它只能用jqLit​​e这种方式运行。如果完整的jQuery存在,一切正常

我做错了什么以及如何使用jqLit​​e创建TR元素?

2 个答案:

答案 0 :(得分:4)

您可以选择普通的document.createElement pretty well supported

以这个简单的指令为例:

myApp.directive('rowAppender', function(){
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
      var tableBody = angular.element(element).parent();
      for(var i= 0; i < 10; i++) {
        var tr = document.createElement('tr');
        var td0 = angular.element(document.createElement('td')).html('Element Value' + i);
        var td1 = angular.element(document.createElement('td')).html('Element Value' + i);
        angular.element(tr).append(td0).append(td1);
        tableBody.append(tr);
      }
    }
  };
});

查看这个有效的Plunkr:http://plnkr.co/edit/PqjzlBYXyzOl4Xuk89rG

答案 1 :(得分:4)

在我发布问题后,如何解决它的想法打了我。我试过,它有效。这是我提出的解决方案:

function createTRElement() {
  var table = angular.element('<table><tr></tr></table>');
  return table.find('tr');
}

我喜欢它比@lpiepiora更好的原因是它让它有点担心跨浏览器互操作