是否可以在一个服务中拥有多个功能?
我的书服务中有这个:
(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 举报,一经查实,本站将立刻删除。