2015-10-09 65 views
1

如何在成功提交時刷新html頁面? 我試過如下,但它不工作。如何在成功提交後使用angularJS刷新頁面

$scope.submit =function(){ 
     data = {}; 
     angular.extend(data, $scope.final_data); 
     angular.extend(data, { checks : $scope.final_data.checks }); 
     $http.post('{% url 'submit' %}', data).success(
      function(data){ 
       alert('succesfully submitted'); 
       $location.path('{% url 'orc_checkbinning' %}'); 
      }).error(function(){ 
       alert('not submitted'); 
     }) 
    }; 

對我的項目使用Django框架。任何想法?提前致謝。

+2

而不是通過更新您的視圖模型刷新頁面或類似的東西,你很可能只是用新的數據更新/範圍 –

+0

我同意@ExplosionPills因爲角度具有雙重的粘合性能,或者你可以只使用location.reload()在你的函數上 – perseusl

回答

3

定義和用法reload()方法用於重新加載當前文檔。 reload()方法與瀏覽器中的重新加載按鈕相同。 默認情況下,reload()方法重新從緩存中加載頁面,但您可以強制它通過將forceGet參數設置爲true來重新加載頁面:location.reload(true)。

使用此更新的代碼。

$scope.submit =function(){ 
     data = {}; 
     angular.extend(data, $scope.final_data); 
     angular.extend(data, { checks : $scope.final_data.checks }); 
     $http.post('{% url 'submit' %}', data).success(
      function(data){ 
       alert('succesfully submitted'); 
        $scope.reloadPage = function()             
        { 
        $window.location.reload(); 
        } 
       }).error(function(){ 
        alert('not submitted'); 
      }) 
     }; 
0

我認爲最好的,是更新submited數據的範圍,但
如果你真的想刷新頁面,試試這個:

可以使用$路由服務的重載方法。在 控制器中注入$ route,然後在$ scope中創建一個reloadRoute方法。

$scope.reloadRoute = function() { 
    $route.reload(); 
} 

SO post