0

我对requirejs相当陌生。我已经设法将 requirejs 与 AMD 模块(例如 ace 编辑器等)一起使用。我在stackoverflow上看到理论上可以用requirejs加载普通js。

经过几次尝试、研究和一些挫折后,我无法使用 requirejs 加载 pagedown 编辑器而没有错误。

这是我的代码:

       requirejs.config({
        paths: {
          jquery:    "jquery-2.0.2.min",
          bootstrap: "bootstrap.min",
          ace:       "ace/lib/ace",
          prettify:  "pagedown/prettify",
          pdconv:    "pagedown/Markdown.Converter",
          pdsanity:  "pagedown/Markdown.Sanitizer",
          pdeditor:  "pagedown/Markdown.Editor",
          pdextra:   "pagedown/Markdown.Extra", 
      },
      shim: {
        "bootstrap": {
            deps: ["jquery"]
        }
      }
    });

require(['jquery', 'bootstrap', 'ace/ace', 'prettify', 'pdconv', 'pdeditor', 'pdsanity', 'pdextra'], 
  function($, Bootstrap, ace, prettyPrint) {
      var input = $('#wmd-input').text();
      var editor = ace.edit("wmd-input");
      var conv = Markdown.getSanitizingConverter();
      Markdown.Extra.init(conv, {
        extensions: "all",
        highlighter: "prettify"
      });

      var md = new Markdown.Editor(conv);
      md.hooks.chain("onPreviewRefresh", prettyPrint); // google code prettify

      md.run(editor);
      editor.focus();
});

这是我不断收到的错误:

Uncaught TypeError: undefined is not a function Markdown.Editor.js:185

每次击键后我都会收到该错误。这些文件确实是通过 requirejs 加载的,但不起作用。是否有一种简单的方法可以使 pagedown 编辑器与 requirejs 一起使用,或者这是不可能的。

任何帮助/建议/建议将不胜感激。

谢谢

4

1 回答 1

1

你可以这样使用:

requirejs.config({
    paths: {
        'markdown-converter': "../Scripts/markdown/Markdown.Converter",
        'markdown-sanitizer': '../Scripts/markdown/Markdown.Sanitizer'
    },
    shim: {
        "markdown-sanitizer": {
            deps: ["markdown-converter"],
            exports: "markdown-sanitizer"
        }
    }
});
// create markdown module 
define("markdown",["markdown-converter","markdown-sanitizer"],function(mc, ms) {
    return window.Markdown;
});

define("markdown",function(markdown) {
   var converter = new Markdown.Converter();
   return {
    converter:converter
   }
});
于 2014-09-26T15:19:39.277 回答