繁体   English   中英

AngularJS-将promise成功值返回给调用函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM