RequireJS,AccountingJs - 将全局配置传递给会计

时间:2014-01-10 09:11:02

标签: javascript requirejs amd

我很高兴使用requireJs并且我在设置模块的全局配置时遇到了问题。

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

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

accounting.settings = $.extend(accounting.settings, {
        currency: { symbol: '\u00A3 '}
    });
accountingJs符合AMD标准并且与require完美配合,但我似乎无法找到一种将配置传递给它的方式而不是。

我已经在require docs here中看到了配置设置,我可以在这里设置配置但是accountingjs没有选择它(它没有被编码为!)。

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

我可以看到一些选项

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

我真正要做的是有一种方法可以从require配置全局应用配置到已存在的模块吗?

1 个答案:

答案 0 :(得分:1)

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

至于垫片,我不记得RequireJS的文档提供的解决方案包括使用垫片作为已经设计用于AMD加载器的模块。因此,如果使用垫片工作,那将是偶然而不是设计。