如何在使用monaco编辑器时通过ajax加载脚本

时间:2017-04-16 14:39:09

标签: ajax monaco-editor

当我在Web应用程序中使用monaco编辑器时,加载程序会导致先前定义的ajax脚本加载不再加载。请参见示例here

<script src="https://unpkg.com/jquery@3.2.1"></script>
<script src="https://unpkg.com/monaco-editor@0.8.3/min/vs/loader.js"></script>
<script>
  $.ajax({
    url: 'https://unpkg.com/vue@2.2.6/dist/vue.js',
    dataType: 'script'
  }).done(function() {
    console.log('Vue', typeof Vue)
  })      
</script>

在此示例中,Vue未定义,删除了loader.js标记,Vue不再是未定义的,它将开发模式消息记录到控制台

我尝试加载为文本并使用上下文调用eval,eval.call,创建脚本标记并附加,不使用jquery的vanilla ajax调用,使用require(src)并且加载器似乎正在积极地捕获所有脚本加载。 / p>

我有一个使用ace编辑器的应用程序,我正在尝试切换到摩纳哥。应用程序是交互式的,用户编写查询和脚本并显示结果。从结果中,用户可以进行选择,可以调用另一个查询来更新结果。

1 个答案:

答案 0 :(得分:1)

摩纳哥loader.js是一个小型AMD加载器 - 所以请使用:

require(['https://unpkg.com/vue@2.2.6/dist/vue.js'], function(theVue) {
  console.log('the Vue is ' + theVue);
})

请参阅vue源文件的第一部分 - 它检查AMD并以其他方式检查(如果存在)。