我的应用程序是时区感知的。用户可以选择特定时区,所有日期输入都可以根据该时区预期值。例如。如果我选择时区纽约市,则每个输入字段都需要并显示UTC-5日期。
使用Angular 1.2,我使用moment.js进行管理。任何输入[date]都有一个字符串生成的字符串作为模型。然后我升级到Angular 1.3。
Angular 1.3需要将原生Date对象作为所有日期相关输入字段的模型。本机日期对象仅支持浏览器时区或UTC。
那么如何使用Angular 1.3管理时区?我可以以某种方式从modelController中删除验证器吗?知道如何解决这个问题吗?
答案 0 :(得分:1)
我找到了一种不太干净且可能有副作用的方法。
我正在使用指令删除特定输入字段上的验证器:
OMD.app.directive('clearValidators', function ($window) {
return {
require:'^ngModel',
restrict:'A',
link:function (scope, elm, attrs, ctrl) {
ctrl.$formatters = [];
ctrl.$parsers = [];
}
};
});
这是如何将它应用于输入。在我清除默认验证器后,它似乎添加了所需的验证器。
<input clear-validators type="datetime-local" ng-model="zoneTime" ng-required="required"/>
它与Angular 1.2一样,但我不喜欢这种方法。