我正在从官方AngularJS文档跟随
Tutorial,我想知道我是否可以向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} }); }]);
我已经尝试了一些事情,而不是他们似乎在工作:
这个answer似乎在正确的轨道上,但是每个工厂功能的语法与上述工厂不匹配。
沿着以下方向的东西:
phonecatServices.factory('Phone',function($resource){ return { query: ... query2: ... } }]);
一个这样的例子是:
Link for Demo
Link for Demo
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); }; }]);
甚至有更好的版本这个意见版本:References
function AnotherService () { var AnotherService = {}; AnotherService.someValue = ''; AnotherService.someMethod = function () { }; return AnotherService; } angular .module('app') .factory('AnotherService',AnotherService);