当我尝试在 ace.js 中创建 Range 对象时,抛出"Illegal Constructor"错误



我正在尝试在我的代码中为ace.js编辑器创建一个 Range 对象,但它不起作用。它以一种我无法弄清楚的方式失败了。在 Ace 文档中,此构造函数为:

new Range(Number startRow,
          Number startColumn,
          Number endRow,
          Number endColumn)

但是当我在我的代码中尝试这样做时:

new Range(0, 0, 0, 1)

它会引发Uncaught TypeError: Illegal constructor错误。是什么导致了这种行为,为什么它与文档不匹配?

Range

本机类型,是您无法实例化的大多数浏览器。我对 Ace 不是很熟悉,但我猜他们使用某种命名空间,以便您会做类似 new Ace.Range() 的事情。

编辑:看起来他们正在使用CommonJS,因此您可以根据需要导入方法并为其别名:

var Range = require('ace/range').Range,
    mine = new Range(0,0,10,0);

require('ace/range').Range替换为ace.require('ace/range').Range

这对我有用:

import { Range } from "ace-builds"

这个解决方案var Range = ace.acequire('ace/range').Range;对我有用!!

完整代码:https://stackoverflow.com/a/53387989/630169

相关内容

  • 没有找到相关文章

最新更新