2016-07-11 12 views
0

Ich, ich arbeite an einer eckigen Form und muss einen Fehler beheben. HierFehler in eckiger Form Drop-Down-Auswahlfeld

ist die Frage:

1) - Typ auswählen: Wert-1

2) - Wählen Sie Data-1: Alle Daten-1

3) - Wählen Sie Data-2: Alle Daten-2

4) - Ändern Sie den Typ nun in: Wert-2 (anstelle von Wert-1).

Die Felder von Daten-1 und Daten-2 sollten verschwinden.

5) - Wählen Sie nun den Typ erneut auf Wert-1.

Klicken Sie nun erneut auf data-1 oder data-2 ... Sie würden wieder eine leere Stelle sehen.

ich nicht diesen leeren Raum hier wollen ...

stattdessen sollte es wieder wieder --Eines wählen-- ...

I Screenshot bin Befestigung und Code ... bitte sehen Sie.

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

Dieser leere Bereich kommt, weil der Modellwert des Auswahlelements keine seiner Optionen ist, z. Wenn Ihr Modellwert "Dummy" ist und Sie in den Auswahloptionen keinen Optionswert "Dummy" haben, wird der leere Platz –

+0

erstellt. –

+0

In Ihrem Fall sollte dem 'newAlert.asset' Modell immer ein Wert zugewiesen werden dass die zugrunde liegende Auswahl als Optionen enthält –

Antwort

2

Auf Änderungsereignis des ‚Typen‘ Drop-Down, müssen Sie $scope.newAlert.site = ''; und $scope.newAlert.asset = '' als ‚eine auswählen‘ Option Wert („“) leere Zeichenfolge zuweisen.

+0

Wie kann ich das erreichen ... wenn du dir den Code ansiehst ... dann im Dropdown-Menü "type" "die einzigen Direktiven, die ich benutzt habe, sind ng-model, ng-init .... wie kann ich das tun? Bei Änderungsereignis wähle Wert etwas ... – Simon

+0

benutze ng-change, um eine Funktion aufzurufen, die das für dich tun kann. –

+0

Danke .... es hat geklappt! ... :-) – Simon