我正在尝试在角度控制器中使用服务,但是我在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
加载了依赖项。
我错过了什么?
答案 0 :(得分:1)
删除了我以前的评论,弄清楚你错了什么。您使用数组表示法来修复缩小,但是您只列出$scope
,您还需要列出其他符号,这意味着您需要添加$http
和ToDo
:
angular
.module('ToDoApp', ['ngAnimate', 'todoService'])
.controller('ToDoController', ['$scope', '$http', 'ToDo', function($scope, $http, Todo) {
Todo.get()
.success(function(data) {
$scope.tasks = data;
});
// ...
}]);