Javascript 使用Angular资源查询带有字符串参数的REST API
我正在尝试查询我在本地托管的REST API,其工作原理如下:Javascript 使用Angular资源查询带有字符串参数的REST API,javascript,angularjs,rest,Javascript,Angularjs,Rest,我正在尝试查询我在本地托管的REST API,其工作原理如下: http://localhost:51608/api/UserRole?email=john@example.com userRoleResource.query({ email: vm.userData.email }, function (data) { vm.userData.accessLevel = data.AccessLevel; }); 该请求起作用,并返回一个具有AccessLevel属性的用
http://localhost:51608/api/UserRole?email=john@example.com
userRoleResource.query({ email: vm.userData.email },
function (data) {
vm.userData.accessLevel = data.AccessLevel;
});
该请求起作用,并返回一个具有AccessLevel属性的用户对象。现在我有一个angular应用程序,希望使用angular资源查询该URL。我有如下内容,但URL没有被正确构建
(function () {
"use strict";
angular
.module("common.services")
.factory("userRoleResource",
["$resource",
"appSettings",
userRoleResource])
function userRoleResource($resource, appSettings) {
return $resource(appSettings.serverPath + "/api/UserRole:email", { email: '@email'});
}
})();
我对上述问题的质疑如下:
http://localhost:51608/api/UserRole?email=john@example.com
userRoleResource.query({ email: vm.userData.email },
function (data) {
vm.userData.accessLevel = data.AccessLevel;
});
但这会生成如下请求:
http://localhost:51608/api/UserRole?email=john@example.com
userRoleResource.query({ email: vm.userData.email },
function (data) {
vm.userData.accessLevel = data.AccessLevel;
});
而不是
这里怎么了 根据
$resource
当前工作,它确实将:email
替换为您提供给$resource
对象的email参数。您可以在像%3A
function userRoleResource($resource, appSettings) {
return $resource(appSettings.serverPath + "/api/UserRole%3A:email", { email: '@email'});
}
为什么不将字符串格式化为:
return $resource(appSettings.serverPath + "/api/UserRole?email:" + email});
函数userRoleResource($resource,appSettings){return$resource(appSettings.serverPath+“/api/UserRole?email=:email”,{email:'@email'});}每次调用该方法时,您是否考虑创建
$resource
对象?我认为那不是一个好主意。。