Ich habe einen Tag lang an einem Problem festgemacht, das ich nicht durchschauen kann.
Ich habe den folgenden Code in einer users.js.coffee-Datei:
%Vor%Warum sollte $ routeParams ein leeres Objekt sein? Wenn ich $ route.current.params in einer Ansicht aufruft, werden die entsprechenden Parameter angezeigt. Aber nicht im Controller. Außerdem kann ich $ route.current.params nicht im Controller aufrufen, weil "current" noch nicht definiert ist.
Wenn Sie einen externen Controller für den gerouteten ng-view-Controller verwenden (wie eine Topbar oder einen Seiten-Controller), müssen Sie die "$ routeChangeSuccess" -Emitter-Nachricht abonnieren.
Der Erfolg der Routenänderung ist asynchron, wenn Sie nicht der empfangende Controller sind. Diese SO Antwort gibt eine vollständigere Antwort: $ routeParams ist im Hauptcontroller leer
aber das ist der Tldr;
%Vor%Es sieht so aus, als wäre $ routeParams zur Controller-Initialisierungszeit für Controller außerhalb der über $ routeProvider / ng-view gerouteten nicht verfügbar. (Mindestens in Winkel 1.0.8)
Wenn Sie auf die Routenparameter in diesen äußeren Controllern zugreifen möchten, können Sie $location.search().<param_name>
Ihre Routen zeigen auf Ihre api-Route. Sie sollten stattdessen ein Pfad zu der Vorlage sein, um rendern zu können:
%Vor%Nehmen wir an, Ihr Benutzer-Index-Controller würde wahrscheinlich wie folgt aussehen:
%Vor%Sie müssen $ http nicht injizieren, da Sie bereits die ngResource-REST-Abstraktion verwenden.
Tags und Links javascript angularjs