如本 fiddle 中的示例,打开 md-datepicker
似乎存在不一致问题。多次使用 md-open-on-focus
.
第一次打开和关闭它后会出现问题(工作正常) - 之后,它会在点击时随机打开并变得不稳定。
<md-datepicker ng-model="timeModel" md-hide-icons="all" md-open-on-focus></md-datepicker>
有没有人遇到过同样的行为并找到了解决方案?谢谢。
最佳答案
目前,问题与 md-hide-icons="all"
和 md-open-on-focus
一起使用的是,当您在外部单击时,焦点仍停留在输入 上.但是,由于没有可单击的图标并且焦点已经在输入上,因此我们无法打开日期选择器。
如果你点击外面,然后再次单击外部 ,输入的焦点消失了,它将从那里正常工作,这应该是预期的行为。
但是如果你不想要这样的行为,我们可以做些什么来改变它!
现在,看看 datePicker
代码,在 closeCalendarPane
函数,它们有
self.calendarPaneOpenedFrom.focus();
它负责保持对输入的关注。如果我们删除它,它会在点击外部(或从选择器中选择日期)时失去焦点,这正是我们想要的。当
openOnFocus
时,他们有一些代码处理输入是真的,但不确定这有什么帮助!Forked jsfiddle (更改后的行位于 #31449)
此外,更改库代码不是我们通常想要做的。所以,现在,你可以有一个解决方法,比如在
md-is-open
上进行回调。并使用您最喜欢的方式(jQuery
/angular.element
或纯 JS)从回调中的输入元素中移除焦点 [如@quirimmo 所述]希望有帮助!
关于angularjs - Angular-Material "md-datepicker"指令 - "md-open-on-focus"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719129/