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

Setting multiple objects with angular (select)

本文关键字:对象 选择 设置      更新时间:2023-09-26

我有以下结构:

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

现在有了我的选择标签,我应该能够同时设置开始日期和结束日期。这是因为我的选择显示了开始日期"-"结束日期的选项,如下所示:

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

这样,我应该按照我的第一个代码示例中指定的格式选择日期。

我尝试使用 ng 更改,但这不起作用。

如果要绑定到对象,则应使用 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>

这是一个笨蛋