我是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的特定网址。
我现在稍微修改我的代码,
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" }
});
}]);
我的问题是我应该在控制器中做些什么?
答案 0 :(得分:0)
因此,我们可以使用接受$resource
作为参数的函数来封装它,而不是直接返回url
。
这样的事情:
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()