1

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

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

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

4

2 回答 2

4

您可以使用普通的旧版本document.createElement,它得到了很好的支持

以这个简单的指令为例:

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

于 2013-08-14T19:18:34.780 回答
4

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

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

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

于 2013-08-15T00:12:00.783 回答