【问题标题】:RequireJS, AccountingJs - passing global config into accountingRequireJS,AccountingJs - 将全局配置传递给会计
【发布时间】:2014-01-10 09:11:01
【问题描述】:

我对使用 requireJs 很陌生,并且在为模块设置全局配置时遇到了问题。

我正在使用accountingJs,并且想全局修改设置,在这种情况下我想将符号从$更改为£。

如果没有 RequireJS,您只需执行类似的操作,因为会计将位于全局命名空间中

accounting.settings = $.extend(accounting.settings, {
        currency: { symbol: '\u00A3 '}
    });

accountingJs 符合 AMD 标准,并且与 require 完美配合,但我似乎无法找到一种将配置传递给全局而不是全局的方法。

我在 require docs here 中看到了配置设置,我可以在此处设置配置,但accountingjs 没有选择它(它没有编码!)。

我的问题是如何在页面内为 AMD 兼容模块全局设置这样的配置?

我可以看到一些选项

  • 编辑 accountingjs 以查看 module.config() 并加载它看到的任何配置 - 我已经尝试过,它确实按预期工作,但我真的不想要自定义。
  • 使用 shim 配置并使用 init 回调 - 我还没有让它工作(可能是因为它已经兼容 AMD)
  • 创建一个新模块以将accountingjs 包装在另一个定义中并在此处应用配置并在每个页面中使用此模块 - 不尝试此操作,但我想它会起作用...

我真正想做的是有一种方法可以将配置从要求配置全局应用到已经存在的模块,这可能吗??

【问题讨论】:

    标签: javascript requirejs amd


    【解决方案1】:

    如果 AMD 模块并非设计为使用module.config,那么您不能强制它使用它。您最后提到的解决方案是最强大的:创建一个包装器模块,根据需要配置实际模块。这个包装器可以使用module.config 来获取值。这个解决方案现在很可能在很长一段时间内都可以与 RequireJS 一起使用,因为您使用的 API 功能有很好的文档记录并且是 RequireJS 功能的核心。

    至于 shim,我不记得 RequireJS 的文档曾经提供过一种解决方案,该解决方案包括将 shim 用于已经设计为与 AMD 加载程序一起使用的模块。因此,如果使用垫片有效,那将是偶然而不是设计。

    【讨论】:

    • 我最后得出了同样的结论。只需将库包装起来并使用简单的私有扩展函数应用配置
    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多