微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – Angular:在一个Service中有多个函数

是否可以在一个服务中拥有多个功能

我的书服务中有这个:

(function() {
    'use strict';
    angular
            .module('app.core')
            .service('BookService',BookService);

        BookService.$inject = ['$resource'];
        /* @ngInject */
        function BookService($resource) {
            return $resource('/api/book/:id',{
                id: '@id'
            },{
                'get': {
                    method: 'GET',cache: true
                },'query': {
                method: 'GET',isArray: true,cache: true
            },});
        }
})()

但是在同一个服务中,我希望有另一个功能,我将传递其他参数,例如:

return $resource('/api/book/:name',{
                name: '@name'
            },});

我的控制器看起来像这样,有两个不同的调用

BookService.get({
                id: 2
            },function(book) {})

BookService.get({
                name: "bookTitle"
            },function(book) {})
是的你可以.只需定义服务中的功能即可.最后,返回一个对象,该对象包含要向服务的使用者公开的所有函数.编辑:这适用于工厂.有关服务,请参阅nathan的回答.
(function() {
    'use strict';
    angular
        .module('app.core')
        .factory('BookService',BookService);

        BookService.$inject = ['$resource'];
        /* @ngInject */
        function BookService($resource) {
            var getById = function(id){
                return $resource('/api/book/:id',{
                    id: id
                },{
                    'get': {
                        method: 'GET',cache: true
                    }
                });
            };

            var getByName = function(name) {
                return $resource('/api/book/:name',{
                    name: name
                },cache: true
                    }
                });
            };

            return {
                getById: getById,getByName: getByName
            };

        }
})()

原文地址:https://www.jb51.cc/angularjs/240349.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐