2016-07-11 9 views
0

私は角度のあるフォームで作業しており、バグを解決する必要があります。ここで角型ドロップダウン選択ボックスのバグ

は問題です:

1) - 選択タイプ:値-1

2) - [データ-1:すべてのデータ-1

3) - [データ-2:すべてのデータ-2

4) - タイプを値-2(値-1の代わりに)に変更しました。

data-1とdata-2のフィールドは消えます。

5) - タイプを再度値-1に選択します。

もう一度data-1またはdata-2をクリックしてください... の空き領域が再び表示されます。

私はここに、この空きスペースを望んでいない...代わりに

それが再び を選ぶ - - ひとつに戻ってする必要があります...

私はスクリーンショットを添付していますし、コードを見てください。あなたの「タイプ」ドロップダウンの変更イベントで

Screenshot

<form class="addAlert settings_form" ng-submit="createAlert(newAlert)"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span 
         aria-hidden="true">×</span></button> 
       <h4 class="modal-title" id="myModalLabel">Create a New Model</h4> 
      </div> 
      <div class="modal-body"> 
       <div class="form_fieldset"> 

        <div class="form_item"> 
         <label for="title">Name</label> 
         <input name="title" type="text" class="form-input title" required placeholder="Alert Name" ng-model="newAlert.title"> 
         <div class="error"></div> 
        </div> 


        <div class="form_item"> 
         <label for="alertformat">Type</label> 
         <select class="form-input alertformat" 
           name="alertformat" ng-model="newAlert.alertType" 
           ng-init="newAlert.alertType='Threshold'"> 
          <option value="Threshold" selected>Value-1</option> 
          <option value="Pipeline Failure">Value-2</option> 
         </select> 
        </div> 

        <div class="form_item" ng-if="newAlert.alertType !='Pipeline Failure'"> 
         <label for="alertformat">Data-1 </label> 
         <select class="form-input alertformat" name="alertformat" 
           ng-model="newAlert.site" required> 
          <option value="" disabled>-- Choose one --</option> 
          <option ng-value="-1">All Data-1</option> 
          <option ng-repeat="item in assetsData" ng-value="{{item.sitename}}"> 
           {{item.sitename}} 
          </option> 
         </select> 
        </div> 
        <div class="form_item" ng-show="newAlert.site" ng-if="newAlert.alertType !='Pipeline Failure'"> 
         <label for="alertformat">Data-2</label> 
         <select class="form-input alertformat" name="alertformat" ng-model="newAlert.asset" required> 
          <option value="" disabled>-- Choose one --</option> 
          <option ng-value="-1">All Data-2</option> 
          <option ng-repeat="item in assetsData | filter:newAlert.site" ng-value="{{item.sitename}}"> 
           {{item.name}} 
          </option> 
         </select> 
        </div> 

        <div class="form_item"> 
         <label for="alertformat">Color</label> 
         <div class="severity"> 
         <input type="radio" class="radioBtnClass" name="numbers" value="Red"checked required> 
         <span>Red</span> 
         </input> 

         <input type="radio" class="radioBtnClass" name="numbers" value="Ember"> 
         <span>Blue</span> 
         </input> 
         </div> 
        </div> 

        <div class="form_item"> 


         <label for="users">Users</label> 
         <div class="user_select"> 
           <span ng-repeat="user in userList" style="display:block"> 
           <input class="alert_user_class" value="{{user.pk}}" type="checkbox"> 
           {{user.email}} 
            </input> 
           </span> 
         </div> 


        </div> 

       </div> 
      </div> 

     </form> 
+0

その空きスペースは、選択のモデル値がそのオプションの1つではないために発生します。あなたのモデルの値が 'dummy'で、選択オプションに' dummy'というオプション値がない場合、空のスペースが来る –

+0

プランカまたはフィドルを作成する –

+0

あなたのケースでは、 'newAlert.asset'モデルには常に値を割り当てる必要があります根本的な選択肢がオプションとして含まれています –

答えて

2

は、オプション値空の文字列(「」)は「1を選択してください」と$scope.newAlert.site = '';$scope.newAlert.asset = ''を割り当てる必要があります。

+0

どうすれば実現できますか...コードを見れば...ドロップダウンで "タイプ"私が使用している唯一の指示は、ng-model、ng-init ...です。どのようにすればいいですか?変更イベントで何か値を選択してください... – Simon

+0

これを行う関数を呼び出すためにng-changeを使用してください。 –

+0

ありがとう....それは働いた!... :-) – Simon

関連する問題