2015-02-05 65 views
-2

在下面的代码中。当我把return true放在.error.success函数中。然后什么都没有发生。从承诺和承诺之外的差异

但是,当我把它超出了我的.error.success函数,那么好听返回并关闭我的ngDialog当我return true。但我不明白为什么。

angular.module('App') 
.controller('NewUserController',function($scope, User, $http){ 

    $scope.user = {}; 

    $scope.save = function() 
    { 
     User.create($scope.user) 
      .success(function(data){ 
       console.log('success'); 
       return true; 
      }) 
      .error(function(data){ 
       console.log('error') 
       return false; 
      }); 

     return true; 
    } 

}); 
+0

因为当你成功返回它没有返回,因为它是在回调函数,我认为环境是不一样的话。 – 2015-02-05 12:55:20

+0

@NarekMamikonyan如何使它从.success函数返回成功? – sanders 2015-02-05 12:56:33

+0

为什么你不使用promise而不是回调? – 2015-02-05 12:57:36

回答

1
$scope.save = function() 
{ 
    return User.create($scope.user) 
     .success(function(data){ 
      console.log('success'); 
      return true; 
     }) 
     .error(function(data){ 
      console.log('error') 
      return false; 
     }); 
} 
+0

这不起作用。即使在.success函数中,我的对话框仍保持打开状态。 – sanders 2015-02-05 12:56:56

+1

您能否显示您实际尝试关闭对话框的部分?你在哪里调用closeThisDialog()? – freele 2015-02-05 13:01:04