2016-11-08 4 views
0

Gibt es eine einfache Möglichkeit, den Standardwert auszuwählen, wenn Dropdown-Felder mit Daten gefüllt werden, die dynamisch generiert werden?Standardwert für dynamisch gefülltes Dropdown in AngularJs festlegen

Ich habe Drop-Down, die mit Werten für Stunden (eigentlich alle 15 Minuten: ..., 09:15, 09:30, 9:45, 10:00, 10:15, ...)

besetzt ist

Was ich tun möchte, ist standardmäßig auf Seite laden Wert 12:00 (Mittag) auswählen.

Ich weiß, dass es einen Weg gibt, dies zu tun, indem ich den Index des Wertes, aber ich wollte erkunden, gibt es einen besseren Weg, es vielleicht zu tun?

Das ist mein Drop-down:

<div class="col-md-2" ng-class="{ 'has-error has-feedback': addNewTestSession.sessionStartTime.$touched && addNewTestSession.sessionStartTime.$invalid }"> 
    <label for="sessionStartTime">Session Start Time<span class="mandatory">*</span></label> 
    <select id="sessionStartTime" name="sessionStartTime" class="form-control" 
     ng-model="newTestSessionCtrl.formData.sessionTime" 
     ng-options="time for time in newTestSessionCtrl.viewData.sessionStarTimeIntervals" 
     ng-required="true"> 
     <option value="" disabled selected>Select</option> 
    </select> 
    <span ng-show="addNewTestSession.sessionStartTime.$touched && addNewTestSession.sessionStartTime.$invalid" 
     class="fa fa-warning form-control-feedback" 
     uib-popover="This field is required." 
     popover-trigger="'mouseenter'" 
     popover-placement="auto right" 
     popover-class="additional-info"></span>    
</div> 

Und diese Funktion werden die Daten für sie erzeugen:

sessionStarTimeIntervals: this.generateTimeIntervalArray(15) 

generateTimeIntervalArray(minutes) { 
    let retVal = []; 
    let hour = 0; 
    let minute = 0; 
    let whileTest = true; 

    function addZeroIfOneDigitvalue(value) { 
     if ((value + "").length === 1) { 
      value = "0" + value; 
     } 

     return value; 
    } 

    while (whileTest) { 
     if (hour === 24) { 
      break; 
     } 

     retVal.push(addZeroIfOneDigitvalue(hour) + ":" + addZeroIfOneDigitvalue(minute)); 

     minute += minutes; 
     if (minute >= 60) { 
      minute = minute - 60; 
      hour++; 
     } 
    } 

    return retVal; 
} 

Was ist die beste Art und Weise und Ansatz für die Auswahl 00.00 auf jeder Seite zu laden, würde ?

Antwort

2

Sie können den Wert vorwählen, der die Modellvariable für Ihre Auswahleingabe füllt.

newTestSessionCtrl.formData.sessionTime='12:00'; 

In der für SELECT

ng-init="newTestSessionCtrl.formData.sessionTime='12:00'" 
ng-model="newTestSessionCtrl.formData.sessionTime" 
HTML :

Während der $ scope Einrichtung oder in einem Teil des Codes, wenn newTestSessionCtrl.formData gefüllt

Verwandte Themen