我正在关注 Tutorial来自 AngularJS 官方文档,我想知道是否可以向 Phone 工厂添加另一个函数,以便我可以更好地组织代码。他们声明了一个“查询”函数,但是如果我想添加一个引用不同 url 的 query2 函数怎么办?例如,phones2/: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}
});
}]);
我尝试了很多方法,但似乎都不起作用:s
这个answer看起来是在正确的轨道上,但是每个工厂函数的语法与上面的工厂不太匹配。
大致如下:
phonecatServices.factory('Phone', ['$resource',
function($resource){
return {
query: ...
query2: ...
}
}]);
最佳答案
这样的一个例子是: 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);
关于angularjs - 我的 AngularJS Factory 可以有多种功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21821150/