Angular 工厂和模块

Angular factory and module

我目前正在学习如何进行 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.

AngularJS Factory 是您的 AngularJS 模块中的提供者,它 returns 一组功能。

该工厂将可注入到您的 AngularJS 控制器中,您可以在其中通过注入依赖项在控制器中使用工厂的方法。

angular.module('todoService').controller('YourController', ['$scope', 'Todos', function($scope, Todos) {
    $scope.somethingToStore = Todos.get();
}]);

正如Aleksey所说$http服务returns一个承诺,这样会更好:

Todos.get().then(function(response){
    $scope.somethingToStore = response.data;
}

解释您的代码的元素:

  • Todos是你的厂名
  • todoService 是你的 angular 模块名称