2016-12-15 33 views
2

我有一個帶有select選項的窗體。如果值是肯定的,我會顯示一個div。當我驗證我的表單時,不會出現。管理錯誤ng-if角

<div class="row"> 
    <div class="col-md-6"> 
     <div class="form-group" ng-class="{ 'has-error': invalid.backendIntegrationUrl, 'has-success': valid.backendIntegrationUrl}"> 
      <label for="backendIntegrationUrl">backend service URL *</label> 
      <input type="text" name="backendIntegrationUrl" class="form-control" placeholder="example: https://qualif.myapi.com/myapi/v1 " ng-model="api.backendIntegrationUrl" ng-required="true"> 
      <span id="helpBlock" class="help-block" ng-show="help.backendIntegrationUrl.required">backend service URL is required.</span>    
     </div> 
    </div> 
    <div class="col-md-6"> 
     <div class="form-group" id="basicAuth"> 
      <label for="basicAuth">basic auth info</label> 
      <select name="basicAuth" class="form-control" ng-init="api.basicAuth = api.basicAuth || 'no'" ng-model="api.basicAuth" id="basicAuth" > 
       <option value="no">no</option> 
       <option value="yes">yes</option> 
      </select> 
     </div>        
    </div> 
</div> 

<div class="row" ng-if="api.basicAuth == 'yes'" id="yesAuth"> 
     <div class="col-md-6" ng-class="{ 'has-error': invalid.basicAuthForBackendUsername, 'has-success': valid.basicAuthForBackendUsername}"> 
      <div class="form-group" > 
       <label for="basicAuthForBackendUsername">basic auth username *</label> 
       <input type="text" id="basicAuthForBackendUsername" name="basicAuthForBackendUsername" class="form-control" placeholder="basic auth username" ng-model="api.basicAuthForBackendUsername" ng-required="api.basicAuth =='yes'"> 
       <span id="helpBlock" class="help-block" ng-show="help.basicAuthForBackendUsername.required">basic auth username is required.</span>  
      </div>         
     </div> 
     <div class="col-md-6" ng-class="{ 'has-error': invalid.basicAuthForBackendPassword, 'has-success': valid.basicAuthForBackendPassword}"> 
      <div class="form-group" > 
       <label for="basicAuthForBackendPassword">basic auth password *</label> 
       <input type="text" id="basicAuthForBackendPassword" name="basicAuthForBackendPassword" class="form-control" placeholder="basic auth password" ng-model="api.basicAuthForBackendPassword" ng-required="api.basicAuth =='yes'"> 
       <span id="helpBlock" class="help-block" ng-show="help.basicAuthForBackendPassword.required">basic auth password is required.</span>  
      </div>         
     </div> 
</div> 

我有一個驗證驗證功能與否的形式這樣:

$scope.help = {}; 
$scope.invalid = {}; 
$scope.invalid.version = $scope.userForm.version.$invalid; 

這是同爲有效。

我該如何解決我的問題出現沒有價值呢?

非常感謝

回答

0

請檢查api.basicAuth1未定義或不是?

而你應該在你的控制器上聲明全局的api.basicAuth

樣品看起來像:

function controllername($scope) 
{ 
$scope.api = { basicAuth: "Yes" } 
    . 
    . 
    . 
    . 
    // other codes 
    . 
    . 
    . 
    . 
} 
+0

我不明白我有什麼做的? – JackR