需要为Kendo-Ui-Dateicker组件动态设置区域设置

时间:2017-10-24 19:16:51

标签: angular kendo-ui-angular2

在现有的角度应用程序中,我们使用了区域设置服务,该服务根据下拉列表的选定值设置区域设置。此区域设置服务来自angular-l10n库。

最近购买了角度的Kendo-UI。我们相信我们可以将datepicker和其他国际化挂钩到这个语言下拉列表(甚至是l10n语言环境服务)。到目前为止,我还没有发现挂钩或订阅服务或下拉列表。

我真的不知道在哪里可以看。

Kendo-UI文档通过从@ angular / core设置LD_Locale来实现这一点,但是从我读过的内容来看,这是一个const,并且在init之后无法更新。

关于如何根据下拉菜单使国家化日期格式的想法或帮助?

1 个答案:

答案 0 :(得分:2)

实际上,Angular的Kendo组件依赖于LOCALE_ID注入令牌来确定所选择的文化设置。由于Angular DI的静态行为,在引导程序之后无法更新此标记,您需要为每种文化都有一个专用模块。该模块将为LOCALE_ID定义特定的提供者:

providers: [{ provide: LOCALE_ID, useValue: 'de' }]

以下是使用此方法的演示:http://plnkr.co/edit/tBWDLziqXRrslupopojY?p=info

另一个选项(正如Philipp在他的评论中提到的)是使用IntlService类的自定义实现,它不依赖于LOCALE_ID标记。文档链接可以在下面找到:

https://www.telerik.com/kendo-angular-ui/components/internationalization/services/#toc-customizing-the-default-service

即将推出的第三个选项是在组件级别定义文化(仍在考虑它是服务还是输入属性)。更多细节可以在这个Github问题中找到:

https://github.com/telerik/kendo-angular/issues/1009

总结一下, 虽然LOCALE_ID令牌无法动态修改,但可以使用上述方法之一动态更新文化。