如何使$资源的URL通用?
我是AngularJS的新手,我在这里有一个问题。
我正在使用$resource
进行我的CRUD操作。
我目前有这样的代码,
angular.module("dopAngular.services")
.factory("UserRoleService", ["$resource",
function ($resource) {
return $resource("api/UserRoleApi", {}, {
query: { method: "GET", isArray: true },
create: { method: "POST" },
get: { method: "GET" },
remove: { method: "DELETE" },
update: { method: "PUT" }
});
}]);
//below is the code in my controller
UserRoleService.query(function (data) {
vm.UserRoleLookups = data;
});
我想使我的UserRoleService
通用,这意味着我不想在工厂级别提供API的具体URL。
我现在修改一下我的代码,
angular.module("dopAngular.services")
.factory("UserRoleService", ["$resource",
function ($resource, url) {
return $resource(url, {}, {
query: { method: "GET", isArray: true },
create: { method: "POST" },
get: { method: "GET" },
remove: { method: "DELETE" },
update: { method: "PUT" }
});
}]);
我的问题是我应该在我的控制器中做什么?
因此,我们可以用一个接受url
作为参数的函数来封装它,而不是直接返回$resource
。
像这样的东西:
myApp.factory('UserRoleService', function($resource) {
return {
query: function(url) {
return $resource(url, {}, {
query: {
method: "GET",
isArray: true
},
get: {
method: "GET"
}
});
}
}
});
现在,在控制器中,您可以像这样调用它:
UserRoleService.query('//httpbin.org').get()
例子小提琴
链接地址: http://www.djcxy.com/p/89559.html