2

我在使用 AMD 加载将 Ace 编辑器与 Dojo 1.9 结合时遇到问题,例如。

<script type="text/javascript">
    require([
        'dojo/on',
        'dojo/dom',
        'somelocal/folder/ace'
        'dojo/domReady!'
    ],
            function(
                    on,
                    dom,
                    ace
                    ) {
                var editor = ace.edit("editor");
                editor.setTheme("ace/theme/github");
                editor.getSession().setMode("ace/mode/twig");
            });
</script>

我收到一个错误:

TypeError: _define.modules is undefined
var module = _define.modules[moduleName];

如何在道场中包含上述 Ace?

谢谢

4

1 回答 1

0

不要尝试像那样加载 ACE,它会一直失败,即使您在加载时设法调整 require/define 也是如此。

到目前为止有效的是:

  • 通过脚本标签加载 ACE,如示例所示
  • 使用 ace.require 加载 ACE 扩展/主题而不是 Dojo 的 require

为什么:ACE 是用 require-js 构建的,大多数模块也是用 CJS 而不是 AMD 编写的;这意味着您在构建 Dojo 应用程序时也会遇到麻烦。

这是我Dojo ACE 编辑器(抓住你需要的东西)

于 2015-05-11T22:56:20.213 回答