2013-07-18 46 views
1

我有一個模式窗口中的數據添加到數據庫中的窗體。成功添加後,我調用$ route.reload()函數刷新底層頁面,但是,我的模式窗口仍然顯示。

$scope.add = function() { 
     $http.post('/api/contact', $scope.form). 
     success(function(data) { 
      $scope.showModal = false; 
      $route.reload(); 
     }); 
    }; 

的模式是標準的angularjs的UI模式:

<div modal="showModal" close="close()" options="opts"> etc </div> 

我試圖在我的控制器的開頭添加$scope.showModal = false;但沒有幫助。

下面是plnkr代碼:

http://plnkr.co/edit/xz6gJRTBisVCeM0gNLx6?p=preview

注意,我知道,如果你註釋掉$route.reload()選項列表中的項目得到更新,但是在我的應用我寫的東西變成數據庫,所以我需要$ route.reload,因爲我需要重新查詢數據庫。

回答

2

您在應用$ route.reload()之前需要超時,因爲它在瀏覽器有時間更新視圖之前試圖啓動。這工作:http://plnkr.co/edit/E7oraQ?p=preview

另外,除非你處理非角度的東西,沒有任何理由重新加載只是寫入數據庫。您應該能夠在控制器內重新進行查詢。