Angular.js - d'avoir accès aux paramètres via $route $ou $ routeParams
J'ai un Contrôleur dans lequel j'ai injecter $route et $routeParams mais quand je vais pour obtenir la valeur par
$route.les itinéraires.actuel.params.test ->> actuel n'est pas défini
$routeParams.test ->> test n'est pas défini
Les deux objets semblent être remplies correctement lorsque j'utilise la console.log($route) ou à la console.log($routeParams)
Je suis perplexe. Comment la valeur d'être là pour la console.journal, mais ne parviennent pas à l'intérieur d'un même contrôleur que je fais de la console.journal?
Mise À Jour: Exemple De Code
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);
}]);
Pourriez-vous poster une partie de votre code?
$route.courant revient pas défini
vous devez montrer à votre itinéraire de configuration il est la clé de ce que les propriétés seront disponibles sur $routeParams.
current
est une propriété de $route
. Pas de $route.routes
.$route.courant revient pas défini
vous devez montrer à votre itinéraire de configuration il est la clé de ce que les propriétés seront disponibles sur $routeParams.
OriginalL'auteur BuddyJoe | 2013-08-21
Vous devez vous connecter pour publier un commentaire.
Voir http://deansofer.com/posts/view/14/AngularJs-Tips-and-Tricks-UPDATED#routing et https://groups.google.com/d/msg/angular/ib2wHQozeNE/sC3SX3QTyRgJ
Dans votre code, $route et $routeParams sont susceptibles d'être résolu de manière asynchrone. Par le temps que vous développez les objets dans la console, ils ont été résolus, mais ils ne sont pas résolus lorsque le contrôleur constructeur fonction s'exécute.
Utilisation
$scope.$on('$routeChangeSuccess', function(...) { ... })
dans votre contrôleur, et essayer de l'examen de la route des propriétés.$routeChangeSuccess
Merci cela m'a rendu fou pendant une journée.
OriginalL'auteur Mark Rajcok
Un peu bidouiller avec Chrome Console
Je veux juste ajouter que cet étrange comportement de la console vaut la peine de payer attention à: la mise à jour de l'objet lorsque vous les développez. Dire que nous en avons:
Dans la console, nous aurions:
Qui affiche la différence entre ces deux copies de
obj
correctement. Toutefois, lorsque vous développez les deux, ils sont pas différents:Avec
$route
Mais au moins, on pouvait dire à partir de la console que quelque chose est mis à jour de manière asynchrone si la console est différent de son expansion, par exemple, lorsque le
$route
avec seulement deux paires clé/valeur:Se développe en trois:
OriginalL'auteur Luxiyalu