2016-08-18 45 views
2

當接收到一個服務器錯誤,我使用這個HTML片段在我的視圖來顯示錯誤消息的頂部,同時執行一個動作AngularJS:如何如果觸發錯誤事件駁回又

<div id="message" ng-show="serverError"> 
    <div style="padding: 5px;"> 
    <div id="inner-message" class="alert alert-danger"> 
     <button type="button" class="close" data-dismiss="alert">&times;</button> 
     {{errorMessage}} 
    </div> 
    </div> 
</div> 
後重新打開引導警報

在我AngularJS代碼,我做以下操作時收到服務器錯誤:

console.log(err); 
$scope.errorMessage = err.data && err.data.errors && err.data.errors[0] || err.statusText; 
$scope.serverError = true; 
$window.scrollTo(0, 0); 

它工作正常的第一次。但是,通過單擊關閉按鈕關閉警報後,如果再次執行觸發錯誤的相同操作,則警告框不會再次顯示。我希望它在出現錯誤時重新出現。刷新頁面後,它可以正常工作。這種行爲的原因是什麼?我怎樣才能達到我想要的?

回答

3

我想你正在使用jQuery隱藏警告消息使用data-dismiss標誌,所以Angular的更改不會更新。

添加範圍方法以僅使用Angular隱藏警報。

例如:

$scope.hideAlert() = function(){ 
    $scope.serverError = false; 
} 

,並調用它的按鈕和刪除data-dismiss

<button type="button" class="close" dang-click="hideAlert()">&times;</button> 

這種方式現在角將只處理警報消息的隱藏/顯示和jQuery將不再需要。