Impossible d'injecter `$http " à l'aide d'AngularJS explicite `app.contrôleur de syntaxe?
J'ai été dit que je devrais être à l'aide de la app.controller
syntaxe, afin de soutenir la minification.
La réécriture de l'échantillon (tutoriel), par exemple, et j'ai constaté que je ne pouvais pas le faire fonctionner:
use 'strict';
/* Minifiable solution; which doesn't work */
var app = angular.module('myApp', ['ngGrid']);
//phones.json: http://angular.github.io/angular-phonecat/step-5/app/phones/phones.json
app.controller('PhoneListCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get('phones/phones.json').success(function (data) {
$scope.phones = data;
});
$scope.orderProp = 'age';
}]);
/* Alternate [textbook] solution; which works */
function PhoneListCtrl($scope, $http) {
$http.get('phones/phones.json').success(function (data) {
$scope.phones = data;
});
$scope.orderProp = 'age';
}
PhoneListCtrl.$inject = ['$scope', '$http'];
<body ng-app="myApp" ng-controller="PhoneListCtrl">
{{phones | json}}
</body> <!-- Outputs just an echo of the above line, rather than content -->
Que dois-je changer?
Autant que je sache, vous pouvez utiliser la deuxième version, même pour les minimiser, à cause de la ligne .$injecter - qui raconte angular.js le bon inchangé noms de ces deux paramètres.
Il fonctionne pour moi. Quelle est l'erreur que tu as?
Il fonctionne pour moi. Quelle est l'erreur que tu as?
OriginalL'auteur user2283066 | 2013-05-21
Vous devez vous connecter pour publier un commentaire.
Le chemin que j'ai fait mon contrôleur de la mise en page est:
{{téléphones}} est correct, car le contrôleur de mettre les données dans $champ d'application.les téléphones
Vous avez dit que la 2ème formule fonctionne, donc ça doit être la façon dont vous jeté les modules.
OriginalL'auteur Foo L