title: Unable to inject `$http` using AngularJS explicit `app.controller` syntax?
body: <p>I have <a href="https://stackoverflow.com/a/16660618">been told</a> that I should be using the <code>app.controller</code> syntax, in order to support minification.</p>
  
  <p>Rewriting the sample (tutorial) example, and I found that I couldn't get it to work:</p>
  
  <pre class="lang-js prettyprint-override"><code>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';
  }]);
  </code></pre>
  
  <pre class="lang-js prettyprint-override"><code>/* 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'];
  </code></pre>
  
  <pre class="lang-html prettyprint-override"><code>&lt;body ng-app="myApp" ng-controller="PhoneListCtrl"&gt;
      {{phones | json}}
  &lt;/body&gt; &lt;!-- Outputs just an echo of the above line, rather than content --&gt;
  </code></pre>
  
  <p>What do I need to change?</p>