如果它是 $scope 变量,则 ng-model-options 被忽略
ng-model-options ignored if it's a $scope variable
我目前正在使用 AngularJS Bootstrap 日期选择器(也称为 uib-datepicker)。我目前正在尝试在其上设置 UTC 偏移量,这可以通过同样设置 ngModelOptions 来完成:ng-model-options="{timezone: '+02:00'}"
效果很好。但是,如果我将 ngModelOptions 设置为 $scope 变量,则不会对时区进行更改。所以,要清楚,这有效:
<input uib-datepicker-popup="{{picker.format}}"
ng-model="picker._value"
is-open="picker.opened"
datepicker-options="picker.options"
ng-model-options="{timezone: '+02:00'}"
close-text="{{'close' | translate}}"
clear-text="{{'clear' | translate}}"
current-text="{{'current' | translate}}"/>
但事实并非如此:
<input uib-datepicker-popup="{{picker.format}}"
ng-model="picker._value"
is-open="picker.opened"
datepicker-options="picker.options"
ng-model-options="ngModelOptions"
close-text="{{'close' | translate}}"
clear-text="{{'clear' | translate}}"
current-text="{{'current' | translate}}"/>
即使“$scope.ngModelOptions”变量拥有完全相同的值“{timezone: '+02:00'}”
我正在使用 angular-ui-bootstrap 2.5.6,以及 angularjs 1.6.9
好吧,我很快找到了答案:ngModelOptions 实际上必须在日期选择器的 "options" 对象中设置,如下所示:
const datePickerOptions = {
opened: false,
format: 'shortDate',
options: {
startingDay: $moment().startOf('week').isoWeekday(),
minDate: null,
maxDate: null,
showWeeks: false,
ngModelOptions: {
timezone: '+02:00'
}
}
};
在 bootstrap 文档 (https://angular-ui.github.io/bootstrap) 中,它说 ng-model-options 是 uib-datepicker 输入中受支持的 angular 选项,但不知何故它不t 使用范围变量,所以只需在日期选择器选项中设置它。
我目前正在使用 AngularJS Bootstrap 日期选择器(也称为 uib-datepicker)。我目前正在尝试在其上设置 UTC 偏移量,这可以通过同样设置 ngModelOptions 来完成:ng-model-options="{timezone: '+02:00'}"
效果很好。但是,如果我将 ngModelOptions 设置为 $scope 变量,则不会对时区进行更改。所以,要清楚,这有效:
<input uib-datepicker-popup="{{picker.format}}"
ng-model="picker._value"
is-open="picker.opened"
datepicker-options="picker.options"
ng-model-options="{timezone: '+02:00'}"
close-text="{{'close' | translate}}"
clear-text="{{'clear' | translate}}"
current-text="{{'current' | translate}}"/>
但事实并非如此:
<input uib-datepicker-popup="{{picker.format}}"
ng-model="picker._value"
is-open="picker.opened"
datepicker-options="picker.options"
ng-model-options="ngModelOptions"
close-text="{{'close' | translate}}"
clear-text="{{'clear' | translate}}"
current-text="{{'current' | translate}}"/>
即使“$scope.ngModelOptions”变量拥有完全相同的值“{timezone: '+02:00'}”
我正在使用 angular-ui-bootstrap 2.5.6,以及 angularjs 1.6.9
好吧,我很快找到了答案:ngModelOptions 实际上必须在日期选择器的 "options" 对象中设置,如下所示:
const datePickerOptions = {
opened: false,
format: 'shortDate',
options: {
startingDay: $moment().startOf('week').isoWeekday(),
minDate: null,
maxDate: null,
showWeeks: false,
ngModelOptions: {
timezone: '+02:00'
}
}
};
在 bootstrap 文档 (https://angular-ui.github.io/bootstrap) 中,它说 ng-model-options 是 uib-datepicker 输入中受支持的 angular 选项,但不知何故它不t 使用范围变量,所以只需在日期选择器选项中设置它。