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
)保存在 service
、factory
甚至 value
中然后在你的指令 $watch
上那个特定的值,当它改变时,你可以 change/re-render 你的组件具有首选值。我认为这是 Angular 的做法 ;)
希望我能回答你的问题。
如果更改 locale
是唯一的需要,那么不需要去 service
只需观察 datepicker
的本地化并在监视处理程序中调用选项如下
$scope.$watch("locale",function(newVal,oldVal){
angular.element("#datepicker").datepicker( "option",$.datepicker.regional[newVal] )
});
我有一个 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
)保存在 service
、factory
甚至 value
中然后在你的指令 $watch
上那个特定的值,当它改变时,你可以 change/re-render 你的组件具有首选值。我认为这是 Angular 的做法 ;)
希望我能回答你的问题。
如果更改 locale
是唯一的需要,那么不需要去 service
只需观察 datepicker
的本地化并在监视处理程序中调用选项如下
$scope.$watch("locale",function(newVal,oldVal){
angular.element("#datepicker").datepicker( "option",$.datepicker.regional[newVal] )
});