如何使用 ng-options 在 select 框中选择默认时间值

How to choose default time value in a select box with ng-options

我有一个带有 select 个框的表格,用于选择企业的工作时间。我想选择 9:00 am 作为第一个框的默认值, 5:00 pm 作为第二个框的默认值。

这是JSfiddle

比如我有

<select ng-options="hour as (hour | date: 'shortTime') for hour in hours"
  ng-model="start_time" ng-change="update(start_time, $index, 1)">

如果在我的 app.js 中我将 $scope.start_time 设置为一个 Date 对象,该对象初始化为当前日期和时间 9:00 上午,则默认值被选为中的最后一个值select 框代替。由于我使用日期过滤器以 'shortTime' 格式在 select 框中显示时间,这是默认值未正确显示的原因吗?

只需正确设置模型 start_time,例如在您的控制器中!

<select ng-options="hour as (hour | date: 'shortTime') for hour in hours track by hour"
        ng-model="start_time" ng-change="update(start_time, $index, 1)">

$scope.start_time = new Date(); // set default date in controller

使用最新的angular版本和track by hour解决问题:http://jsfiddle.net/j8xu1h2h/