Aktualisieren Sie die übergeordnete Bereichsvariable in eckig
Ich habe zwei Controller, ein gewickelt in einem anderen. Jetzt weiß ich, das Kind-scope erbt die Eigenschaften von der übergeordneten Bereich, aber gibt es eine Möglichkeit zum aktualisieren der übergeordneten scope-variable? Bisher habe ich noch nicht ganz offensichtliche Lösungen.
In meiner situation habe ich ein Kalender-controller innerhalb eines Formulars. Ich möchte zum aktualisieren der start-und end-Termine aus dem übergeordneten Bereich (das ist die form), so dass die form hat, die start-und Enddatums eingereicht.
InformationsquelleAutor der Frage Malcr001 | 2013-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ein Objekt (kein primitiver) in den übergeordneten Bereich und dann werden Sie in der Lage sein, Sie zu aktualisieren, direkt aus dem untergeordneten Bereich
Eltern:
Kind:
Arbeiten demo: http://jsfiddle.net/sh0ber/xxNxj/
Sehen Was sind die Nuancen der Umfang prototypal /prototypische Vererbung in AngularJS?
InformationsquelleAutor der Antwort sh0ber
Es ist eine weitere Möglichkeit, um diese Aufgabe zu erfüllen und nicht der
$scope.$parent
variable.Vorbereiten und eine Methode für das ändern der Werte in der übergeordneten Bereich und verwenden Sie es in ein Kind. Wie diese:
Funktioniert es auch und geben Ihnen mehr Kontrolle über den Wert ändert.
Können Sie dann auch die Methode aufrufen, auch in HTML wie:
<a ng-click="changeSimpleValue('y')" href="#">click me!</a>
.InformationsquelleAutor der Antwort Ravbaker
Funktioniert das auch (aber nicht sicher, ob dies folgt best practice oder nicht)
InformationsquelleAutor der Antwort DynamicNate
Beim zuweisen eines primitiven Attribut zu einem Umfang ist es immer lokal auf dem Umfang (ggf. on the fly erstellt), selbst wenn ein Elternteil Umfang hat ein Attribut mit dem gleichen Namen. Dies ist eine design-Entscheidung, und ein guter IMHO.
Wenn Sie Sie brauchen, um einige primitive (int, Boolean, strings) im übergeordneten Bereich aus der Sicht, die Sie benötigen, um ein Attribut von einem anderen Objekt in diesem Bereich, so gilt die Abtretung kann Lesen:
und es wird, wiederum:
viewData
Objekt, egal aus welcher Geltungsbereich ist definiert, inmyAttr
Attribut.InformationsquelleAutor der Antwort rewritten
Für den Zugriff auf Variablen, die in der übergeordneten, sollte man mit $parent in child-controller oder eine Vorlage-Datei
Controller
In der html-Vorlage
InformationsquelleAutor der Antwort Nibu