我目前正在学习如何进行MEAN Stack编程,我遇到了一些我无法理解的代码。我曾尝试在Google上搜索,但仍然不理解。
以下是代码:
angular.module('todoService', [])
.factory('Todos', ['$http',function($http) {
return {
get : function() {
return $http.get('/api/todos');
},
create : function(todoData) {
return $http.post('/api/todos', todoData);
},
delete : function(id) {
return $http.delete('/api/todos/' + id);
}
}
}]);
有人能解释一下.factory()实际上在做什么吗?另外,参数'Todos'和todoService是什么?代码来自此source。
答案 0 :(得分:1)
AngularJS Factory是AngularJS模块中的一个提供程序,它返回一组函数。
此工厂将在AngularJS控制器中注入,您可以通过注入依赖关系在控制器中使用工厂的方法。
angular.module('todoService').controller('YourController', ['$scope', 'Todos', function($scope, Todos) {
$scope.somethingToStore = Todos.get();
}]);
正如Aleksey所说,$http
服务返回一个承诺,所以最好这样做:
Todos.get().then(function(response){
$scope.somethingToStore = response.data;
}
解释您的代码的元素:
Todos
是您的工厂名称todoService
是您的角度模块名称