bootstrap-timepicker在加载时不显示模型值

时间:2017-06-07 11:58:22

标签: angular-ui-bootstrap bootstrap-datetimepicker angular-strap

我有以下元素:

<div class="input-group bootstrap-timepicker">
    <input type="text"
           class="form-control timepicker"
           name="start-time"
           ng-model="timeSegment[0]"/>
    <span data-toggle="timepicker" class="input-group-addon add-on btn btn-default">
       <i class="icon icon-time"></i>
    </span>
</div>

它包含在ng-repeat中,多次重复此元素。上面的代码片段工作正常,并在加载时正确显示正确的模型值,但使用文本框输入时间而不是时间选择器。我的模型值&time;时间段[0]&#39;是一个格式为&#39; hh:mm a&#39;的字符串,例如&#39; 00:00 AM&#39;。

但是,只要我将bs-timepicker属性添加到上述元素(以便使用timepickers而不是textbox输入时间):

<div class="input-group bootstrap-timepicker">
        <input type="text"
               class="form-control timepicker"
               name="start-time"
               ng-model="timeSegment[0]"
               bs-timepicker/>
        <span data-toggle="timepicker" class="input-group-addon add-on btn btn-default">
           <i class="icon icon-time"></i>
        </span>
    </div>

他们显示的是默认时间,而不是我模型中的值。它正确地拾取了我的模型,因为它正确地迭代了正确数量的元素并显示了它们的时间戳,而不是时间戳中的正确值。

虽然时间戳显示默认时间,但是当我更改其中一个时,我的模型中的值也会正确更新,这也很奇怪。

我认为可能是因为时间是我的模型是一个字符串,而不是日期,但即使添加此处描述的属性http://mgcrea.github.io/angular-strap/#/timepickers,如下所示也没有区别。我也试过让我的模型成为Date对象,但同样没有区别。

data-modelTimeFormat="hh:mm A"
data-timeType="string"

2 个答案:

答案 0 :(得分:0)

我最终使用了不同的时间选择器,它按预期工作:

https://angular-ui.github.io/bootstrap/

答案 1 :(得分:0)

即使您只使用时间选择器来选择时间,其值也必须是完整日期。将ng-model的值设为任意日期,并将其设置为您需要的时间,例如。

var myDateTime = new Date("01-Jan-1970 00:00:00");
ng-model = myDateTime;