2015-03-13 28 views
0

我想在角度控制器中使用服务,但是我在TypeError: Cannot read property 'get' of undefined中收到错误。AngularJS:TypeError:无法读取未定义的属性'get'

这是怎么我的app.js脚本的样子:

angular 
    .module('ToDoApp', ['ngAnimate', 'todoService']) 
    .controller('ToDoController', ['$scope', function($scope, $http, Todo) { 

     Todo.get() 
      .success(function(data) { 
       $scope.tasks = data; 
      }); 
     // ... 
    }]); 

它不知道有关get属性格式。这是怎么Todo样子:

angular.module('todoService', []) 
    .factory('Todo', function($http) { 
     return { 
      get: function() { 
       return $http.get('/todos'); 
      }, 
      // ... 
     } 
    }); 

而且我加载顺序的脚本:

<script src="{{ asset('/scripts/services/todoService.js') }}"></script> 
<script src="{{ asset('/scripts/app.js') }}"></script> 

错误听起来好像控制器不正确地得到服务对象,像这种依赖性缺失。但我已经加载了与module的依赖关系。

我错过了什么?

回答

1

删除我以前的评论,找出你错了什么。您正在使用数组表示法来解决微小,但你只上市$scope,你需要列出加上其他的,这意味着你需要添加$httpToDo

angular 
    .module('ToDoApp', ['ngAnimate', 'todoService']) 
    .controller('ToDoController', ['$scope', '$http', 'ToDo', function($scope, $http, Todo) { 

     Todo.get() 
      .success(function(data) { 
       $scope.tasks = data; 
      }); 
     // ... 
    }]); 
相关问题