我正在关注AngularJS官方文档中的教程,我想知道是否可以向Phone工厂添加另一个功能,以便更好地组织代码。他们已经声明了一个“查询”函数,但是如果我想添加一个引用不同URL的query2函数,该怎么办…例如说phone2 /:phoneName.json?
工厂声明:
var phonecatServices = angular.module('phonecatServices', ['ngResource']); phonecatServices.factory('Phone', ['$resource', function($resource){ return $resource('phones/:phoneId.json', {}, { query: {method:'GET', params:{phoneId:'phones'}, isArray:true} }); }]);
我已经尝试了许多方法,但似乎都没有用:
这个答案似乎在正确的轨道上,但是每个工厂函数的语法与上面的工厂不太匹配。
类似于以下内容:
phonecatServices.factory('Phone', ['$resource', function($resource){ return { query: ... query2: ... } }]);
这样的一个例子是: 演示链接
angular.module('services', []).factory('factoryName', ["$filter", function($filter) { var method1Logic = function(args) { //code }; var method2Logic = function(args) { //code }; return { method1: method1Logic, method2: method1Logic }; } ]).controller('MainController', ["$scope", "$rootScope", "$filter", "factoryName", function ($scope, $rootScope, $filter,factoryName) { $scope.testMethod1 = function(arg){ $scope.val1 = factoryName.method1(arg); }; $scope.testMethod2 = function(arg){ $scope.val2 = factoryName.method2(arg); }; }]);
甚至有这样一个更好的版本固执己见版
function AnotherService () { var AnotherService = {}; AnotherService.someValue = ''; AnotherService.someMethod = function () { }; return AnotherService; } angular .module('app') .factory('AnotherService', AnotherService);