Service injection dans le contrôleur avec AngularJS

J'ai écrit un service AngularJS, mais je ne peux pas le faire fonctionner avec l'angle de graines façon de faire les choses.

Le contrôleur de code est comme suit:

/*function PhotoCtrl($scope, Photo) {
    $scope.photos = Photo.query();
}*/

angular.module('myApp.controllers', []).
    controller('PhotoCtrl', [function($scope,Photo) {
    $scope.photos = Photo.query();
}])
.controller('MyCtrl2', [function() {

}]);

Noter que le commentaire sur l'article fonctionne très bien, mais je tiens à le gérer un peu comme l' (recommandé) deuxième.

L'erreur que je reçois est que la Photo est pas défini, donc j'imagine ma méthode de transmission (injection) c'est mal, mais je ne peux pas savoir comment le faire correctement

  • Autant que je sache, la première méthode est très bien, je crois que c'est ce qui est indiqué dans le tutoriel officiel par exemple. Avez-vous des sources qui indiquent le contraire?
  • "REMARQUE: la plupart des exemples dans la documentation montrent la création de fonctions dans la portée globale. Ce n'est que pour les besoins de la démonstration ......." à partir de docs.angularjs.org/guide/dev_guide.mvc.understanding_controller semble le dire. Ne m'obtenez pas le mal, je pense que la première est plus facile à lire, mais je comprends que le nom de l'espacement peut-être mieux
  • Si vous retirez l'emballage des crochets autour de la fonction de contrôleur de définition [function($scope,Photo) {}] vous serez également très bien, mais ne pas le faire si vous prévoyez de rapetisser votre code. Plus sur l'injection des dépendances dans angulaire ici
  • Merci, je n'étais pas au courant. Suppose que je vais avoir à réécrire ma demande 🙂
  • heureux d'être de l'aide 😉
  • à droite, j'ai lu ça quelque part, en effet, merci de me le rappeler

InformationsquelleAutor Maarten | 2013-06-01