我需要创建一个带有角度嵌套 td 的 tr。这样做的角度方法是使用 angular.element('<tr>')。它适用于所有元素 - 除了 tr 或 td。对于这两个家伙,调用返回一个空数组。
顺便说一句,它只在 jqLite 中以这种方式运行。如果存在完整的 jQuery,一切正常
我在做什么错以及如何使用 jqLite 创建一个 TR 元素?
我需要创建一个带有角度嵌套 td 的 tr。这样做的角度方法是使用 angular.element('<tr>')。它适用于所有元素 - 除了 tr 或 td。对于这两个家伙,调用返回一个空数组。
顺便说一句,它只在 jqLite 中以这种方式运行。如果存在完整的 jQuery,一切正常
我在做什么错以及如何使用 jqLite 创建一个 TR 元素?
您可以使用普通的旧版本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
在我发布问题后,我想到了如何解决它。我试过了,它奏效了。这是我想出的解决方案:
function createTRElement() {
var table = angular.element('<table><tr></tr></table>');
return table.find('tr');
}
我比@lpiepiora 更喜欢它的原因是它让我不得不担心跨浏览器互操作