2016-04-06 40 views
1

如何添加一個微調,而我的形式submiting(然後它去到另一個/路由)微調而submiting形式angularjs

我已經做是波紋管。

Angularjs

$scope.submit = function() { 
    $http.post('/option', { 
     firstName: $scope.firstName, 
     lastName: $scope.lastName, 
    }).then(function(res) { 
     sessionStorage.setItem("flight", JSON.stringify(res.data)); 

     $location.path("/option"); 
     $scope.setDelay = function(){ 
      $scope.delay = true; 
      $timeout(function(){ 
       $scope.delay = false; 
      }, 2000); 
     }; 
     }); 

HTML

按鈕提交(我想說明,當我點擊的onsubmit()微調)

<md-button name="submit" ng-click="submit(); setDelay()" class="md-raised">Find</md-button> 

<div>其翔WS微調

<div class="loading-div" ng-show="delay"> 
    <img src="spinner.gif"> 
</div> 
+0

現在會發生什麼?錯誤或者什麼也不顯示,或者顯示延遲? –

+0

@JoeLloyd沒有錯誤,但它在頁面更改前顯示,所以在頁面更改時沒有「強制休眠時刻」。我清楚了嗎? – maevy

回答

0

1在您提交功能,設置$ scope.delay = TRUE;

2後回報。那麼(功能(RES){,設置$ scope.delay = FALSE;

這是你想要

0

您可以喊得您提交方法裏面裝載的標誌是什麼?

$scope.submit = function() { 
    $scope.delay = true; //but I would name it as loading :P 
    $http.post('/option', { 
     firstName: $scope.firstName, 
     lastName: $scope.lastName, 
    }).then(function(res) { 
     $scope.delay = false; 
     sessionStorage.setItem("flight", JSON.stringify(res.data)); 
     $location.path("/option"); 
    }); 

那麼你的HTML只需要調用提交函數:

<md-button name="submit" ng-click="submit();" class="md-raised">Find</md-button> 

無論如何,你的setDelay函數在$ http.post的成功回調中定義,我錯了。

+0

是的,但我想強制睡眠時間更長一些。有了這些解決方案,它不會睡多少時間。你明白我的意思嗎? – maevy

+0

然後包裝$ scope.delay = false; '$ timeout(function(){ $ scope.delay = false; },2000);' –

0

你是否希望它完全是2秒鐘,或者你認爲這就是用戶從服務器回聽的過程?如果是第二個選項,那麼你就應該像這樣的HTTP請求之前切換你的布爾:

$scope.submit =() => { 
    $scope.delay = true; 
    $http.post('/option', { 
     firstName: $scope.firstName, 
     lastName: $scope.lastName, 
    }).then(res => { 
     sessionStorage.setItem("flight", JSON.stringify(res.data)); 
     $scope.delay = false; 
     $location.path("/option"); 
    }) 
} 

和HTML

<md-button name="submit" ng-click="submit()" class="md-raised">Find</md-button> 
<div class="loading-div" ng-if="delay"> 
    <img src="spinner.gif"> 
</div> 

應該這樣做

0
<md-button name="submit" ng-click="submit()" class="md-raised">Find</md-button> 

<div class="loading-div" ng-if="delay"> 
    <img src="spinner.gif"> 
</div> 



$scope.submit = function() { 
    $scope.delay = true; 
    $http.post('/option', { 
    firstName: $scope.firstName, 
    lastName: $scope.lastName, 
    }).then(function(res) { 
     sessionStorage.setItem("flight", JSON.stringify(res.data)); 
     $scope.delay = false; 
     $location.path("/option"); 
    }); 
}