Warum wird diese Funktion zweimal ausgeführt?
Ich habe eine Baumstruktur.JSBIN hier
in der Richtlinie
scope.add_child_task = function() {
scope.add_task(scope.path,"child of " + scope.member.name);
if (!scope.has_children) {
scope.add_children_element();
scope.has_children = true;
}
};
in der Steuerung
$scope.add_task = function(to,name) {
DataFactory.add_task(to,name);
};
Die Fabrik findet die richtige Position und fügt den Knoten hinzu.
Beim Hinzufügen eines Kindes zu Knoten mit vorhandenen Kindern werden zwei Kinder hinzugefügt, und ich verstehe nicht, warum.
Vielen Dank.
BEARBEITEN Ich kann verlierenhas_children
und es erzeugt immer noch das gleiche Ergebnis
Mitgliedslink functin
link: function (scope, element, attrs) {
element.append("<collection></collection>");
$compile(element.contents())(scope);
scope.get_path = function() {
var temp = scope.$parent.get_path();
temp.push(scope.member.name);
return temp;
};
scope.path = scope.get_path();
scope.add_child_task = function() {
scope.add_task(scope.path,"child of " + scope.member.name);
};
}
BEARBEITEN 2 Löschte auch die for-Schleifen - tauschte nur Referenzen aus, es blieb nichts anderes übrig, als eine Funktion, die zweimal ausgeführt wurde!