2017-08-17 36 views
0

我有以下控制器:NG-模板沒有得到刷新單擊按鈕時

function _deleteServiceInstance(serviceInstanceId) { 
    self.hasServerErrors = false; 
    self.serverErrors = []; 
    var flag = 1; 
    if (confirm("Are you sure you want to delete the service instance in this environment region?")) { 
     for (var i = 0; i < self.serviceInstanceDeployments.length; i++) { 
      var obj = self.serviceInstanceDeployments[i]; 
      if (obj.state === "ACTIVE") 
       flag = 0; 
     } 
     if (flag === 0) 
     { 
      self.hasServerErrors = true; 
      self.serverErrors = ["Please delete the active deployments before deleting the service instance"]; 
      // $window.location.reload(); 
      $scope.$apply(); 
      return self.serverErrors; 
     }; 
    } 
} 

以下是HTML:

<a uib-popover-template="ctrl.deleteServiceInstanceTemplate" popover-title="Delete service instance" 
      popover-placement="auto bottom" popover-trigger="outsideClick"> 
      <button type="button" class="btn btn-danger"> 
       Delete 
      </button> 
    </a> 

<script type="text/ng-template" id="deleteServiceInstance.html"> 
    <div class="container-fluid"> 
     <div class="row"> 
      <form name="ctrl.delete.form" class="form-horizontal" novalidate> 
       <div class="form-group" ng-class="{'has-error' : ctrl.hasServerErrors}"> 
        <label class="col-sm-12 control-label">Are you sure? 
         <button type="submit" class="btn btn-primary" ng-click="ctrl.deleteServiceInstance(ctrl.serviceInstance.id)" 
           ng-disabled="ctrl.purge.form.$invalid">Yes</button> 
         <span ng-show="ctrl.hasServerErrors" class="help-block" ng-repeat="serverError in ctrl.serverErrors">{{serverError}}</span> 
        </label> 
       </div> 
      </form> 
     </div> 
    </div> 
</script> 

基本上,有一個刪除按鈕,打開爲彈出。如果我確定要刪除某些內容,它會要求確認。如果我按是,它會檢查是否有任何部署處於活動狀態。如果有,則顯示錯誤。現在,問題是,當我第二次點擊刪除按鈕時,即使我沒有按下yes,也會顯示相同的錯誤。它會一直顯示相同的錯誤,直到頁面刷新。

編輯:我已經宣佈這樣的_deleteServiceInstance在我的控制器:

self.deleteServiceInstance = _deleteServiceInstance 
+0

從哪裏打電話? '_deleteServiceInstance'? –

+0

@AdnanUmer,看我的編輯。我已經在我的控制器中聲明瞭它,並且從我定義的模板調用了deleteServiceInstance方法。 – sarah

回答

0

,同時單擊delete按鈕事件,應清除的消息,而不是yes按鈕單擊事件

<button type="button" ng-click="clearMessages" class="btn btn-danger"> 
       Delete 
      </button> 

控制器

function _clearMessages() { 
    self.hasServerErrors = false; 
    self.serverErrors = []; 
} 


self.clearMessages= _clearMessages