【问题标题】:AngularJS how to change jquery component when a service attribute value changesAngularJS如何在服务属性值更改时更改jquery组件
【发布时间】:2015-03-20 10:55:09
【问题描述】:

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

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

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

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

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

更新

嗯,我找到了这个帖子,DOM manipulation in AngularJS services。 那么,我的场景可以适应吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我想到的解决方案是:您可以将您的语言环境值(例如en-US)保存在service、factory 甚至value 中,然后在您的指令$watch 上保存特定值,当它更改时,您可以使用首选值更改/重新渲染您的组件。我认为这是 Angular 的做法;)

      希望我能回答你的问题。

      【讨论】:

        【解决方案3】:

        如果更改locale 是唯一需要,则无需使用service,只需注意datepicker 的本地化并在监视处理程序中调用如下选项。

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

        【讨论】:

          猜你喜欢
          • 2021-11-24
          • 2019-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-03
          相关资源
          最近更新 更多