Angular.js - Zugriff auf die params mittels $route oder $routeParams
Habe ich einen Controller in die ich Spritzen $route und $routeParams, aber wenn ich gehe, um den Wert über
$route.Routen.aktuelle.params.test ->> aktuell ist undefiniert
$routeParams.test ->> test ist nicht definiert
Beide Objekte zu sein scheinen ordnungsgemäß gefüllt, wenn ich die Konsole.log($route) oder in der Konsole.log($routeParams)
Ich bin ratlos. Wie könnte der Wert sein, es für die Konsole.log aber nicht im gleichen controller, den ich mache die Konsole.log aus?
Update: Beispielcode
angular.module('TestApp')
.controller('TestController', ['$scope', '$http', '$routeParams', '$route',
function($scope, $http, $routeParams, $route) {
console.log($routeParams);
//console.log($routeParams.test);
console.log($route.current.test);
//console.log($route.routes);
}]);
- Könntest du post von deinem code?
current
ist eine Eigenschaft von$route
. Nicht von$route.routes
.- $route.Strom kommt wieder undefined
- Sie sollten zeigen Sie Ihre route-Konfiguration es ist wichtig, welche Eigenschaften, die verfügbar sein wird auf $routeParams.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen http://deansofer.com/posts/view/14/AngularJs-Tips-and-Tricks-UPDATED#routing und https://groups.google.com/d/msg/angular/ib2wHQozeNE/sC3SX3QTyRgJ
In Ihrem code, $route und $routeParams wahrscheinlich aufgelöst wird asynchron. Durch die Zeit, die Sie erweitern Sie die Objekte in der Konsole wurden behoben, aber Sie werden nicht aufgelöst, wenn die controller-Konstruktor-Funktion ausgeführt wird.
Verwenden
$scope.$on('$routeChangeSuccess', function(...) { ... })
in Ihrem controller, und versuchen Sie, untersucht die route-Eigenschaften gibt.$routeChangeSuccess
Ein wenig zwicken mit Chrom-Konsole
Ich möchte nur hinzufügen, dass dieses seltsame Verhalten mit Konsole lohnt sich, Aufmerksamkeit zu: es aktualisiert das Objekt, wenn Sie es erweitern. Sagen wir, wir haben:
In der Konsole würden wir bekommen:
Zeigt den Unterschied zwischen den zwei Kopien der
obj
richtig. Wenn Sie jedoch erweitern die beiden, Sie sind nicht anders:Mit
$route
Aber wenigstens konnten wir sagen, von der Konsole aus, dass etwas aktualisiert wird asynchron, wenn die eine Konsole ist anders als seine Erweiterung, zum Beispiel, wenn die
$route
mit nur zwei Schlüssel/Wert-Paare:Erweitert, die in drei: