2015-02-05 45 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