AngularJS:TypeError:无法读取未定义的属性'get'

时间:2015-03-13 16:35:22

标签: angularjs

我正在尝试在角度控制器中使用服务,但是我在TypeError: Cannot read property 'get' of undefined中收到错误。

这就是我的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 个答案:

答案 0 :(得分: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;
            });
        // ...
     }]);