AngularJS如何在服务属性值更改时更改jquery组件

时间:2015-03-20 10:55:10

标签: jquery angularjs jquery-ui jquery-ui-datepicker

我有一个AngularJS 1.0.7网络应用程序。

我正在使用集成在指令中的JQuery-UI datepicker组件。另一方面,我的应用程序本地化为英语和西班牙语。

我有一个包含语言区域设置的服务。每当语言环境发生变化时,我想更改jquery datepicker组件语言环境。

我在这里看到了JQuery中的示例:http://jqueryui.com/datepicker/#localization。这很简单。但问题是我需要从服务访问jquery组件。

我想这不是Angular的方式。我怎样才能做到这一点?

更新

好吧,我发现了这篇帖子DOM manipulation in AngularJS services。 那么,我的情景可以适应它吗?

3 个答案:

答案 0 :(得分:0)

有效。如果可以从服务更新DOM元素。

答案 1 :(得分:0)

我想到的解决方案是:您可以在en-USservice甚至factory中保留您的区域设置值(例如value),然后在关于该特定值的指令$watch上,当它发生更改时,您可以使用首选值更改/重新呈现组件。我认为这是Angular的做法;)

希望我能回答你的问题。

答案 2 :(得分:0)

如果更改locale是唯一的需要,则无需转到service只需查看datepicker的本地化,并在监视处理程序中调用以下选项

 $scope.$watch("locale",function(newVal,oldVal){
  angular.element("#datepicker").datepicker( "option",$.datepicker.regional[newVal] )
  });