使用角度设置多个对象(选择)

时间:2014-12-16 18:35:28

标签: javascript angularjs

我有以下结构:

period: {
    startDate: new Date(),
    endDate: new Date()
}

现在使用我的select标签,我应该可以设置startDate和endDate。这是因为我的select显示了一个startDate选项“ - ”endDate,如下所示:

<select id="periodId" ng-model="selectedPeriod">
  <option value="{{ period.startDate}}|{{period.endDate }}" ng-repeat="period in periods">{{ period.startDate | date : 'dd-MM-yyyy' }} - {{ period.endDate | date : 'dd-MM-yyyy' }}</option>
</select>

这样我就可以在我的第一个代码示例中指定的格式中使用selectedDate。

我尝试使用ng-change但是没有用。

1 个答案:

答案 0 :(得分:2)

如果要绑定到对象,则应使用ng-options。来自Angular的文档:

  
    

在许多情况下,可以在元素上使用ngRepeat而不是ngOptions来实现类似的结果。但是,ngOptions提供了一些好处,例如通过不为每个重复实例创建新范围来减少内存和提高速度,以及通过select作为理解表达式的一部分来提供更灵活的模型分配方式。当模型需要绑定到非字符串值时,应使用 ngOptions。这是因为选项元素目前只能绑定到字符串值。

  

所以,在你的情况下:

<select id="periodId" ng-model="selectedPeriod"
    ng-options="period as ((period.startDate | date:'dd-MM-yyyy') + ' - ' + (period.endDate | date:'dd-MM-yyyy')) for period in periods">
</select>

这是plunker