在这个plunk中,我有一个将元素附加到DOM的指令。当我尝试在循环中使用children()
时,我得到forEach
不是函数的异常。由于children()
返回一个数组,我希望这可以工作。如何让孩子们?
使用Javascript:
directive.link = function (scope, element, attrs) {
var wrap = angular.element('<div id="wrap"></div>');
var wrapc = $compile(wrap)(scope)
element.append(wrapc);
var node1 = angular.element('<div id="node1"></div>');
var node1c = $compile(node1)(scope)
wrapc.append(node1c);
var node2 = angular.element('<div id="node2"></div>');
var node2c = $compile(node2)(scope)
wrapc.append(node2c);
var children = wrapc.children();
children.forEach(function(elem){ // <-- this doesn't work
console.log(elem.attr('id'));
});
};
答案 0 :(得分:3)
我不知道你是否需要达到这个目标,但我会这样写:
var children = wrapc.children();
angular.forEach(children, function(value, key){
console.log(children[key].id));
});
答案 1 :(得分:1)
jQuery方法.attr()
抛出了异常,我可以通过将其更改为使用javascript中的.id
来修复它。
更新了plunker:http://plnkr.co/edit/OT0fSnryaY7A4hmeZLj9?p=preview