我在我的应用程序中使用了相当多的uib-datepicker-popup。在这个特定的例子中,它一直运作良好。
我在我的应用程序的每个其他实例中使用它与我的完全相同,但它只有一半有效。
底部栏中的“今天”,“清除”和“完成”按钮按预期工作(点击“今天”将日期放入输入并隐藏日历,“清除”清除输入并隐藏日历, “完成”隐藏日历)。
但是,当我在日历上选择任何日期/日时,它会突出显示它,但输入中没有填充日期,日历仍然保持打开状态。
这是我的html:
<input type="text" class="form-control" name="convert_date" uib-datepicker-popup="M/d/yyyy" ng-model="vm.case.convert_date" ng-disabled="!vm.isActive" placeholder="m/d/yyyy" is-open="open" ng-click="open = true" ng-focus="open = true" show-weeks="false">
为什么日期按钮不会填充输入?
答案 0 :(得分:0)
ngModelOptions 是罪魁祸首。我在应用程序的这个区域设置了整个视图,如下所示:
ng-model-options="{ updateOn: 'blur click', debounce: {'blur': 0, 'click': 0} }"
这会阻止日期/日期按钮触发其事件并填充输入并隐藏日历。
我通过直接添加另一个ngModelOptions实例作为我的uib-datepicker-popup元素的属性解决了我的问题,如下所示:
<input ng-model-options="{ updateOn: 'default' }" name="convert_date" uib-datepicker-popup="M/d/yyyy" type="text" class="form-control" ng-model="vm.case.convert_date" ng-disabled="!vm.isActive" placeholder="m/d/yyyy" is-open="open" ng-click="open = true" ng-focus="open = true" show-weeks="false">
这会将模型行为重置为默认设置,以便日期选择器可以再次正常运行。