2016-11-08 58 views
0

当下拉列表中填充动态生成的数据时,是否有一种简单的方法来选择默认值?在AngularJs中动态填充下拉列表中设置默认值

我已经下拉,填充值为小时(实际上每15分钟:...,09:15,9:30,9:45,10:10,10:15,...)

我想要做的是默认选择页面加载值12:00(中午)。

我知道有一种方法可以通过给予价值指数来做到这一点,但我想探索一下有没有更好的方法来做到这一点?

这是我的下拉菜单:

<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> 

这个函数将生成的数据吧:

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; 
} 

什么是对每一个页面加载选择12:00的最佳方式和途径?

回答

2

您可以预先选择填充选择输入的模型变量的值。

在$范围设置或者在你的代码的某些部分时newTestSessionCtrl.formData填充:

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

在HTML的SELECT

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