角度工厂和模块

时间:2018-01-24 14:43:06

标签: angularjs node.js mongodb express mean-stack

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

1 个答案:

答案 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是您的角度模块名称