我有以下结构:
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但是没有用。
答案 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