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?

OriginalL'auteur user2283066 | 2013-05-21