我需要创建一个带有角度嵌套td的tr。这样做的角度方式是使用angular.element('< tr>')。它适用于所有元素 - 除了tr或td。对于这两个人来说,调用返回一个空数组。
顺便说一句,它只能用jqLite这种方式运行。如果完整的jQuery存在,一切正常
我做错了什么以及如何使用jqLite创建TR元素?
答案 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更好的原因是它让它有点担心跨浏览器互操作