更改 Restangular 对象的路径
Change the route for a Restangular object
我正在使用 Restangular 像这样登录我的当前用户:
this.login = function (credentials) {
var loginURL = Restangular.all('logins');
return loginURL.customPOST({ user: credentials.user, password: credentials.password })
.then(function (res) {
$scope.currentUser = res;
console.log("User successfully logged in.");
};
};
在某些时候,currentUser 可能需要使用 customPUT() 更新他的首选项。 . .
this.updateUser = function(currentUser){
return currentUser.customPUT({ user: currentUser })
.then(function(response){
if (typeof response.errors === 'undefined') {
$rootScope.$broadcast(AUTH_EVENTS.updateAccount, response.data );
console.log("Account successfully updated.");
currentUser = response.data
} else {
$q.reject(response);
}
}, function(response){
$q.reject(response);
});
我的问题是我的服务器 api 有一条用于 logins/outs (/api/logins/
) 的路由和一条用于用户更新 (/api/users/
) 的不同路由。
有没有办法在登录后轻松更改 currentUser 对象上的路由,以便它使用 /api/users
路由?
我假设
- 您已将
baseUrl
(通过 Restangular.setBaseUrl
)设置为 API
- 并且大部分时间都需要路线
'users'
。
如果这是真的,一种解决方案是获取登录返回的普通对象并 re-restangularize 它。这看起来类似于以下代码:
$scope.currentUser = res.plain();
Restangular.restangularizeElement('', $scope.currentUser, 'users');
在登录 POST 的 then
部分试试这个。之后 $scope.currentUser
应该是您的用户对象,但所有设置就像您从 /users
中检索到的一样。随后的 REST 操作将使用新的 URL.
我正在使用 Restangular 像这样登录我的当前用户:
this.login = function (credentials) {
var loginURL = Restangular.all('logins');
return loginURL.customPOST({ user: credentials.user, password: credentials.password })
.then(function (res) {
$scope.currentUser = res;
console.log("User successfully logged in.");
};
};
在某些时候,currentUser 可能需要使用 customPUT() 更新他的首选项。 . .
this.updateUser = function(currentUser){
return currentUser.customPUT({ user: currentUser })
.then(function(response){
if (typeof response.errors === 'undefined') {
$rootScope.$broadcast(AUTH_EVENTS.updateAccount, response.data );
console.log("Account successfully updated.");
currentUser = response.data
} else {
$q.reject(response);
}
}, function(response){
$q.reject(response);
});
我的问题是我的服务器 api 有一条用于 logins/outs (/api/logins/
) 的路由和一条用于用户更新 (/api/users/
) 的不同路由。
有没有办法在登录后轻松更改 currentUser 对象上的路由,以便它使用 /api/users
路由?
我假设
- 您已将
baseUrl
(通过Restangular.setBaseUrl
)设置为 API - 并且大部分时间都需要路线
'users'
。
如果这是真的,一种解决方案是获取登录返回的普通对象并 re-restangularize 它。这看起来类似于以下代码:
$scope.currentUser = res.plain();
Restangular.restangularizeElement('', $scope.currentUser, 'users');
在登录 POST 的 then
部分试试这个。之后 $scope.currentUser
应该是您的用户对象,但所有设置就像您从 /users
中检索到的一样。随后的 REST 操作将使用新的 URL.