【问题标题】:monaco-editor in AngularJSAngularJS 中的摩纳哥编辑器
【发布时间】:2018-12-18 07:44:09
【问题描述】:

我可以在 AngularJS 中实现 monaco-editor,但是如果用户通过“未定义摩纳哥”的错误刷新页面 monaco,这是因为 monaco 正在加载延迟。有没有其他方式可以立即加载 monaco .这是代码..

 resolve: {
            srcipts: function (lazyScript) {
               return lazyScript.register([
                      "monaco-editor/min/vs/loader.js",
                      "monaco-editor/min/vs/editor/editor.main.nls.js",
                      "monaco-editor/min/vs/editor/editor.main.js"
                       ]).then(function () {
                        // console.log(require);
                     require.config({ paths: { 'vs': 'monaco-editor/min/vs' } })
                         // console.log(monaco)
                         })
                     }
               }

这是我推荐的链接

Lazy-load MonacoEditor

https://github.com/Microsoft/monaco-editor/blob/master/docs/integrate-amd.md

https://microsoft.github.io/monaco-editor/playground.html

帮我解决这个问题

【问题讨论】:

    标签: angularjs monaco-editor


    【解决方案1】:

    这并不是您要寻找的答案,但我在 Angular 1.x 中遇到了与 monaco 相同的问题。我最终在 iFrame 中实现了 monaco。有点困难,但它的加载比 AMD 加载要容易得多。

    【讨论】:

      【解决方案2】:

      我知道这远非理想的解决方案,但我基本上最终在包装编辑器的指令中执行了以下操作。

      function delayedInitialization() {
        if (typeof window.monaco === 'undefined') {
          $timeout(delayedInitialization, 200);
        } else {
          initialize();
        }
      }
      

      也许可以通过将编辑器打包成一种允许监听各种事件的方式来使其更简洁,但现在这可以满足我们的需要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-23
        • 2023-04-04
        • 2018-07-27
        相关资源
        最近更新 更多