如何使 $resource 的 URL 通用?
How to make the URL of $resource generic?
我是 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()
我是 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()