Var $ http未定义

时间:2015-05-12 18:19:09

标签: javascript angularjs

我正在尝试构建一个Angularjs应用程序,但我的控制器出现问题。

'use strict';

/* Controllers */

angular.module('myApp.controllers', []).
  controller('AppCtrl', function ($scope, $http) {

  }).
  controller('indexCTRL', function ($scope) {
    $http.get('/api/frettir').
    success(function(data, status, headers, config) {
      $scope.posts = data;
    });

  });

但是当我运行它时会出现错误,说明$ http未定义。我能改进什么?

3 个答案:

答案 0 :(得分:6)

您需要在使用它的控制器中注入$http服务。我非常喜欢这个非常精确的inline syntax,如果您的代码通过缩小器,它将避免出现问题。

controller('indexCTRL', ['$scope', '$http',
    function($scope, $http) {
     //...your code

    }
])

答案 1 :(得分:4)

'use strict';

/* Controllers */

angular.module('myApp.controllers', []).
  controller('AppCtrl', function ($scope, $http) {

  }).
  controller('indexCTRL', function ($scope, *$http*) {
    $http.get('/api/frettir').
    success(function(data, status, headers, config) {
      $scope.posts = data;
    });

  });

答案 2 :(得分:2)

您应该将它作为依赖项添加到使用它的每个控制器:

controller('indexCTRL', function ($scope, $http) {