In dieser plunk habe ich eine Direktive, die Elemente an das DOM anfügt. Wenn ich versuche, children()
in einer Schleife zu verwenden, bekomme ich eine Ausnahme, dass forEach
keine Funktion ist. Da children()
ein Array zurückgibt, habe ich erwartet, dass dies funktioniert. Wie bekomme ich die Kinder?Looping durch untergeordnete Elemente des DOM-Elements in der Direktive
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'));
});
};
Überprüfen Sie, ob 'Kinder()' Methode ein Versprechen gibt, ich am Ende in der Regel in Versprechen Bumping-Arrays/Objekte zu erwarten. – M22an
nein, es scheint kein Versprechen zu geben – ps0604
Hmm, Angulars Dokumentation für dieses 'angular.element.children()' verweist auf das jQuery-Äquivalent. Was bekommen Sie, wenn Sie die Variable 'children' protokollieren? – M22an