如何使用requirejs加载pagedown编辑器

时间:2014-06-03 12:15:48

标签: javascript requirejs pagedown

我对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();
});

以下是我不断收到的错误:

未捕获TypeError:undefined不是函数Markdown.Editor.js:185

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

非常感谢任何帮助/建议/建议。

由于

1 个答案:

答案 0 :(得分: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
   }
});