angular ui datepicker刷新禁用日期

时间:2014-09-15 04:26:40

标签: angularjs angular-ui

有没有人有解决方案从服务器响应中更新角度ui的禁用日期?

https://github.com/angular-ui/bootstrap/issues/779

  

您应该创建另一个需要datepicker控制器的指令。从你的   您应该调用datepicker的refreshView来重新评估禁用的dastes。

有没有人有示例代码?

我正在尝试使用angular ui datepicker,以便从服务器响应中读取禁用的日期。我更改了datepicker的最小日期以强制它刷新。

我看到另一个stackoverflow页面,用户刷新了它,但它依赖于点击的datepicker日历。另一个使用的是将日期最小属性设置为另一个字段的值。

对我而言,我与日期选择器有一个完全独立的字段。更改后,它会向服务器发送http请求,并在成功响应时更新可用日期。

更改最小日期以强制刷新的唯一问题是某些时候有相同但有不同的日期要禁用。我正在考虑将我不使用的datepicker选项更改为随机值以强制刷新。

有没有人有更好的方法?我通过服务看到了跨控制器通信,但这是一个不同的模块。我还看到了一个github问题,其中datepicker控制器可以是

2 个答案:

答案 0 :(得分:1)

我使用装饰器找到了解决此问题的简单方法:https://gist.github.com/cgmartin/3daa01f910601ced9cd3

然后,您只需要调用$scope.$broadcast('refreshDatepickers')来刷新日期选择器。

重要提示:对于较新的ui-bootstrap datepicker库,如果您使用带有'datepickerDirective'元素或属性的datepicker,则可能需要将'uibDatepickerDirective'替换为uib-datepicker

答案 1 :(得分:1)

角度引导日期选择器有datepicker-options

此用户列出了解决方案:https://github.com/angular-ui/bootstrap/issues/2189#issuecomment-225685104

  

bogdandrumen于6月13日发表评论

Use datepicker-options="{minDate: yourScopeMinDate}"

对我有用。我有两个选择器,第二个选择器不能大于第一个选择器,所以如果第一个选择器改变,第二个选择器的最大日期也会改变。