9

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

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

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

new Range(0, 0, 0, 1)

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

4

4 回答 4

15

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

编辑:看起来他们正在使用 CommonJS,因此您可以导入该方法并为其命名,但您喜欢:

var Range = require('ace/range').Range,
    mine = new Range(0,0,10,0);
于 2012-05-05T08:46:47.540 回答
4

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

于 2015-12-16T12:01:29.853 回答
2

这对我有用:

import { Range } from "ace-builds"

于 2020-02-27T10:44:14.090 回答
0

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

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

于 2018-11-20T07:05:14.097 回答