0

当我在 Web 应用程序中使用 monaco 编辑器时,加载器会导致之前定义的 ajax 脚本加载不再加载。在此处查看示例

<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) 并且加载器似乎正在积极地捕获所有脚本加载。

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

4

1 回答 1

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 并以另一种方式(如果存在)。

于 2017-04-16T23:26:28.007 回答