$etat, $stateParams, l'obtention d'objet non défini
J'obtiens des résultats inattendus à partir de deux méthodes.
J'ai mon $état configed
$stateProvider
.state('status', {
url: "/status/:payment",
controller: 'QuestCtrl',
templateUrl: "index.html"
});
Et sur le Contrôleur, j'ai:
angular.module('quest').controller('QuestCtrl',function($scope,$stateParams,$state){
console.log($stateParams.payment); //undefined
console.log($state); //Object {params: Object, current: Object, $current: extend, transition: null}
}
J'ai déjà utilisé $stateParams dans d'autres projets, et cela a fonctionné, mais maintenant je ne peux pas comprendre ce qui se passe ici..
regardez commande vous avez oublié $http 😛 ['$champ d'application",'$http', '$stateParams','$'etat', function($champ,$http,$stateParams,$etat)
Quelle est l'URL dans la barre d'adresse du navigateur?
Les gars, il est tellement gêné, mais j'ai essayé d'ajouter $stateParams juste pour obtenir un supplément de params donc j'ai oublié d'ajouter <ui-view> mon html. Alors maintenant, je suis en utilisant le $lieu au lieu - simple. Désolé les gars.. et merci pour les réponses @jb-nizet, @ squiroid, @ thomas-weglinski
Quelle est l'URL dans la barre d'adresse du navigateur?
Les gars, il est tellement gêné, mais j'ai essayé d'ajouter $stateParams juste pour obtenir un supplément de params donc j'ai oublié d'ajouter <ui-view> mon html. Alors maintenant, je suis en utilisant le $lieu au lieu - simple. Désolé les gars.. et merci pour les réponses @jb-nizet, @ squiroid, @ thomas-weglinski
OriginalL'auteur Gabriel Lopes | 2015-06-20
Vous devez vous connecter pour publier un commentaire.
Les noms des services ne correspondent pas avec les variables.
Donc $http est en fait le $stateParams service, $stateParams est en fait le $service de l'état, et de l'état n'est pas défini.
Mon conseil: arrêtez d'utiliser cette notation de tableau, ce qui encombre le code et est une source fréquente de bugs. Au lieu de cela, utilisez ng-annoter dans le cadre de la procédure de construction, qui va le faire, correctement, pour vous.
Je vais jeter un oeil sur ng-annoter, merci pour l'astuce! bien que je fixe l'ordre et j'ai toujours le même résultat.
Modifier votre question et ajouter une section contenant le nouveau code.
OriginalL'auteur JB Nizet
Comme je l'ai déjà dit ci-dessus, Vous avez oublié d'injecter $service http
Afin que vos paramètres d'incompatibilité et il s'avère que vous obtiendrez $l'état $stateparms et $état est vide.
Et $http maintenez $état 😛
Espère que cela aide 🙂
Hey, pouvez-vous reproduire sur plunker ?
OriginalL'auteur squiroid
Avec la ng-annotation de bibliothèque, le contrôleur peut également être lancé comme ceci:
Dans ce cas, vous éviter des problèmes avec l'injection des objets de la commande. Regardez: https://github.com/olov/ng-annotate
Si vous construisez votre application avec Grunt, utilisation:
grunt-ng-annotate
paquet.OriginalL'auteur Thomas Weglinski
Appel 'ngInject'
constructeur($champ, $réactif, $stateParams, $etat, $sec) {
'ngInject'
OriginalL'auteur Piyush Dhomne
Paramètre manquant dans routes.js
Mon exemple:
Sans cette params dans les routes de l' $stateParams.yourParam renvoie toujours pas défini.
OriginalL'auteur MarceloBarbosa