我正在使用 angularjs、angular bootstap(这个)和他们的 datepicker 来输入日期。
<input type="text" datepicker-popup="dd.mm.yyyy" ng-model="dt" datepicker-options="dateOptions" ng-required="true">
我希望能够手动更改 datepicker 选择的日期。例如,我在 datepicker 中选择了 07.09.2013,我想将其更改为 07.09.2012。为此,我单击输入并按退格键删除最后一个数字 3 并放在那里 2。问题是当我这样做时,我的 ng-model 变成了来自 Date 对象的字符串,并且 datepicker 没有捕获新的日期。您可以尝试在 angular bootstap 页面上执行此操作(使用 firefox)。
我知道这是正常行为,因为输入类型文本表明浏览器用户可以在其中放置他想要的任何文本,以及 ng-model 指令,因为它是这样工作的。但是这个问题有解决方法吗?我认为我需要使用 ng-change 或 $watch 监视我的 ng-model 并使用此处提到的库将其转换为 Date 对象(我不能使用 Date.parse() 因为我的日期格式对此函数无效)。
我的问题是:这个问题有什么不同的解决方案吗?任何配置标志或特定角度的东西?