有资源的Angular Services / Factories

时间:2014-10-14 13:30:57

标签: javascript angularjs

我是AngularJS新手的Web开发人员。我一直在阅读@ toddmotto的Angular styleguide(https://github.com/toddmotto/angularjs-styleguide)。我目前正在构建一个通过RESTful API获取数据的CRUD应用程序。

我有点卡在服务和/或工厂上。

我之前有过这样的工作(下面的代码),但是看看Todd的风格指南 - 我想把我的逻辑从控制器转移到服务/工厂但是我不知道如何得到什么我之前在新结构工作过。

有人有什么想法吗?

以前的UserService.js

(function () {
    'use strict';

    function UserService($resource) {
        return $resource('https://api.path.com/users/:id', { }, {
            query: {
                method: 'GET'
            },
            create: {
                method: 'POST'
            },
            update: {
                method: 'PUT'
            },
            delete: {
                method: 'DELETE'
            }
        });
    }

    angular
        .module('app')
        .factory('UserService', UserService);
})();

目前,我有:

UserController.js

(function () {
    'use strict';

    function UserController(UserService) {
        var _this = this;

        UserService
            .getUsers()
            .then(function (response) {
                _this.users = response;
                console.table(response);
            });
        };
    }

    angular
        .module('app')
        .controller('UserController', UserController);
})();

UserService.js

(function () {
    'use strict';

    function UserService($resource) {
        var service = {};

        service.getUsers = function () {
            return $resource('https://api.path.com/users');
        };

        return service;
    }

    angular
        .module('app')
        .factory('UserService', UserService);
})();

修改

    var resource =  $resource(baseUrl + '/users/:id', { }, {
        query: {
            method: 'GET'
        },
        create: {
            method: 'POST'
        },
        update: {
            method: 'PUT'
        },
        delete: {
            method: 'DELETE'
        }
    });

    service.getUsers = function () {
        return resource.query().$promise;
    };

1 个答案:

答案 0 :(得分:0)

试试这个:

service.getUsers = function () {
    return $resource('https://api.path.com/users').query().$promise;
};