Angular.js - Zugriff auf die Params über $ route oder $ routeParams

7

Ich habe einen Controller, in den ich $ route und $ routeParams injiziere, aber wenn ich gehe, um den Wert über

zu bekommen

$ route.routes.current.params.test - & gt; & gt; Strom ist undefiniert $ routeParams.test - & gt; & gt; Test ist nicht definiert

Beide Objekte scheinen korrekt ausgefüllt zu sein, wenn ich console.log ($ route) oder console.log ($ routeParams)

verwende

Ich bin verwirrt. Wie könnte der Wert für console.log da sein, aber scheitern innerhalb des gleichen Controllers, aus dem ich die console.log von?

Update: Beispielcode

%Vor%     
BuddyJoe 21.08.2013, 21:47
quelle

2 Antworten

15

Siehe Ссылка und Ссылка

In Ihrem Code werden $ route und $ routeParams wahrscheinlich asynchron aufgelöst. Wenn Sie die Objekte in der Konsole erweitern, wurden sie aufgelöst, aber sie werden nicht aufgelöst, wenn die Controller-Konstruktorfunktion ausgeführt wird.

Verwende $scope.$on('$routeChangeSuccess', function(...) { ... }) in deinem Controller und versuche dort die Routeneigenschaften zu untersuchen.

$ routeChangeSuccess

    
Mark Rajcok 22.08.2013, 00:24
quelle
3

Ein wenig optimieren mit der Chrome-Konsole

Ich möchte nur hinzufügen, dass dieses merkwürdige Verhalten mit der Konsole Aufmerksamkeit verdient: Es aktualisiert das Objekt, wenn Sie es erweitern. Sagen wir, wir haben:

%Vor%

In der Konsole würden wir bekommen:

%Vor%

Dies zeigt den Unterschied zwischen diesen beiden Kopien von obj korrekt an. Wenn Sie die beiden jedoch erweitern, unterscheiden sie sich nicht:

%Vor%

Mit $route

Aber zumindest konnten wir an der Konsole erkennen, dass etwas asynchron aktualisiert wird, wenn sich die Einzeilenkonsole von ihrer Erweiterung unterscheidet, zum Beispiel wenn $route mit nur zwei Schlüssel / Wert-Paaren:

%Vor%

Erweitert sich in drei:

%Vor%     
Luxiyalu 04.09.2014 07:57
quelle

Tags und Links