[英]AngularJS - return promise success value to the calling function
我正在学习AngularJS和AJAX。我正在尝试将成功函数返回的数据分配给用户。 grantRole属于Auth服务。 我目前拥有的用户价值是一个承诺。 如何将成功返回的数据分配给用户?
$scope.grantRole = function(user) {
user = Auth.grantRole(user).then(
function success(data){
return data;
},
function error(err){
console.log(err);
}
);
grantRole: function(user,callback) {
var cb = callback || angular.noop;
var data = {id: user._id,controller:'role'};
return User.update({id: user._id,controller:'role'},data,
function(user) {
return cb(user);
}, function(err) {
return cb(err);
}).$promise;
};
承诺用户的当前值是正确的。 一旦解决了诺言,便会将其分配给成功返回的数据。
但是在重新分配对象或数组时必须小心。 请参阅服务变量未在控制器中更新
例如,不要这样做:user = ...;
而是,执行以下操作:angular.copy(newInfo,user)或执行以下操作:user.email = ...
$scope.grantRole = function(user) {
Auth.grantRole(user).then(
function success(data){
angular.copy(data, user);
},
function error(err){
console.log(err);
}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.