angularjs - Angular-Material "md-datepicker"指令 - "md-open-on-focus"问题

标签 angularjs angular-material

如本 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/

相关文章:

angularjs - ng-repeat 破坏了 .form-inline 中的 Bootstrap 样式

javascript - 在 Ionic 和 Angular 中使用表单设置本地存储变量

javascript - 过滤时间戳至今

css - 如何自定义 Angular Material 的 input/md-input-container 组件?

html - 使用垫子按钮以 Angular 构建导航栏

javascript - 从 Angular Material 实现 $md-sidenav 时出现错误

javascript - Angular 中的 Google 自动完成功能

angularjs - 如何为 AngularStrap datetimepicker 显示 'invalid date' 验证消息

angular - 我应该为我的 Angular 6 应用程序使用 Angular Material 还是 Bootstrap Material?

angularjs - 使用 UI-Router 时 Angular Material 布局中断