&引用;猎户座;在dojo中集成orion编辑器时未定义

&引用;猎户座;在dojo中集成orion编辑器时未定义,dojo,eclipse-orion,Dojo,Eclipse Orion,我是dojo新手,我正在尝试在dojo中集成orion编辑器(从下载的构建),但我得到错误“orion”未定义。 代码如下所示: 放置编辑器的HTML文件 JS文件 require([ "dojo/_base/declare", "dijit/_WidgetBase", "editorBuild/code_edit/built-codeEdit-amd", "dijit/_TemplatedMixin", "dojo/text!orionEditor.html" ], function(de

我是dojo新手,我正在尝试在dojo中集成orion编辑器(从下载的构建),但我得到错误“orion”未定义。 代码如下所示:

  • 放置编辑器的HTML文件

  • JS文件

    require([
    "dojo/_base/declare", 
    "dijit/_WidgetBase",
    "editorBuild/code_edit/built-codeEdit-amd",
    "dijit/_TemplatedMixin",
    "dojo/text!orionEditor.html"
    ], function(declare,_WidgetBase,
    codeEditorAmd, _TemplatedMixin,template){
    declare("orionEditor", [_WidgetBase, 
    _TemplatedMixin], {
    
    templateString: template,
    
    postCreate: function(){
          var codeEdit = new orion.codeEdit();
            var contents = '';
                codeEdit.create({parent: this.embeddedEditor, contentType: "application/javascript", contents: contents}).
          then(function(editorViewer) {                         
            if (editorViewer.settings) {
                            editorViewer.settings.contentAssistAutoTrigger = true;
                            editorViewer.settings.showOccurrences = true;
                        }
    
                    });
         }
       });
      });
    
  • orion编辑器版本位于editorBuild文件夹中

  • 独立猎户座运作良好- 当与dojo集成时,我不知道为什么orion是未定义的。
    任何帮助都将不胜感激

    如果要在amd模块中使用
    orion
    名称,则必须将其定义为作为require回调传递的函数中的参数

    检查-它有2个解决方案使用猎户座与amd模块

    选项1-定义捆绑包一次,并在需要的所有模块中使用较短的名称:

    require.config({
        bundles: {
            "editorBuild/code_edit/built-codeEdit-amd": ["orion/codeEdit", "orion/Deferred"]
        }       
    });
    require(
        ["orion/codeEdit", "orion/Deferred"], 
        function(mCodeEdit, Deferred) {
            var codeEdit = new mCodeEdit();
            var contents = 'var foo = "bar";'; 
            codeEdit.create({parent: "embeddedEditor"/*editor parent node id*/})
                    .then(function(editorViewer) {
                        editorViewer.setContents(contents, "application/javascript");
                    });
    });
    
    选项2-嵌套要求:

    require(["editorBuild/code_edit/built-codeEdit-amd"], function() {
        require(["orion/codeEdit", "orion/Deferred"], function(mCodeEdit, Deferred) {
        var codeEdit = new mCodeEdit();
        var contents = 'var foo = "bar";'; 
        codeEdit.create({parent: "embeddedEditor"/*editor parent node id*/})
                .then(function(editorViewer) {
                    editorViewer.setContents(contents, "application/javascript");
                });
        });
    });
    

    注意:您可以将
    mCodeEdit
    替换为任何唯一的名称(不会影响其他对象/模块)

    非常感谢。工作顺利。:)