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

AngularJS how to change jquery component when a service attribute value changes

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

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

我有一个保存语言环境的服务。每当区域设置更改时,我想更改 jquery datepicker 组件区域设置。

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

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

更新

嗯,我找到了这个 post,DOM manipulation in AngularJS services。 那么,我的场景是否适合它?

它正在工作。如果可以从服务更新 DOM 元素。

我想到的解决方案是:您可以将区域设置值(例如 en-US)保存在 servicefactory 甚至 value 中然后在你的指令 $watch 上那个特定的值,当它改变时,你可以 change/re-render 你的组件具有首选值。我认为这是 Angular 的做法 ;)

希望我能回答你的问题。

如果更改 locale 是唯一的需要,那么不需要去 service 只需观察 datepicker 的本地化并在监视处理程序中调用选项如下

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