2016-03-24 5 views
0

Ich bin relativ neu zu eckig, also ertragen Sie mit mir. :-) Ich habe eine Liste von Kontakten in einer Ansicht. Ich habe einen Dienst mit einigen Setter- und Getter-Funktionen zusammengestellt, um die Kontakt-ID zu halten. Wenn der Benutzer auf einen Kontakt in der Listenansicht klickt, wird die ID im Service festgelegt und die Bearbeitungsformularansicht angezeigt. Dies funktioniert gut, aber wenn ich mit der Bearbeitung fertig bin und auf klicke, um zur Listenansicht zurückzukehren, möchte ich die Variablen im Service löschen. Wie würde ich das tun? Ich habe eine andere Antwort zu diesem Thema gefunden, aber ich denke, es ist die Verwendung des eingebauten eckigen Routers anstelle von UI-Router.Angular - Wie kann ich Factory-Variablen löschen, wenn sich die Ansicht ändert?

Angular updating and clearing factory variables

Auch würde nicht die Methode in dieser Antwort klar auch die Variablen, wenn der Benutzer aus der Liste der Bearbeitungsform in erster Linie bewegt?

Danke!

+0

Warum wollen Sie diese Informationen beharren in einem Dienst? Ich würde die Sammlung im Dienst behalten und der Ansicht mitteilen, nach welchem ​​Gegenstand die Routenparameter gesucht werden sollen. –

+0

Wie gesagt, ich bin neu in eckig. Von dem, was ich gesammelt hatte, um Informationen von einem Controller zu einem anderen zu übertragen, musste ich einen Dienst verwenden. Ich wiederhole: Ich bin neu. :-D Wenn Sie mir mehr Details auf einem besseren Weg geben können, bin ich ganz Ohr ... äh ... Augen. Vielen Dank! – Mattaton

+0

Das angularjs Tutorial hat ein großartiges Beispiel https://docs.angularjs.org/tutorial. Das heißt, angularjs hat ein klaffendes Loch, wo die Business-Logik-Schicht sein sollte. Ich denke, dass die meisten fortgeschrittenen Entwickler einen erstellen. –

Antwort

1

Wenn es eine Routenänderung ist können Sie $ locationChangeStart verwenden, finden Sie $location

Zum Beispiel in der Editier-Steuerung, für das Ereignis auf der Route ändern registrieren:

var onloc = $scope.$on('$locationChangeStart', function (event, newUrl, oldUrl) {     
    myService.cleanUp(whatever); 
    onloc();   
}); 
+0

Ist "=>" gültige js-Syntax? Mein Redakteur erstickt daran. – Mattaton

+0

Hatte geändert zu: '$ scope. $ On ('$ locationChangeStart', Funktion (event, newUrl, oldUrl)' aber es hat funktioniert. Danke! – Mattaton

+0

Yeah entschuldigen Sie das - Ich benutze TypeScript, tippen Sie es einfach im laufenden Betrieb Ich habe den Zucker in der Codebeispiel entfernt. – RamblinRose