我正在尝试在我的代码中为ace.js
编辑器创建一个Range对象,但它不起作用。它以一种我无法弄清楚的方式失败。在the Ace documentation中,此构造函数为:
new Range(Number startRow,
Number startColumn,
Number endRow,
Number endColumn)
但是当我在我的代码中尝试这个时:
new Range(0, 0, 0, 1)
引发Uncaught TypeError: Illegal constructor
错误。是什么导致了这种行为,为什么它不符合文档?
答案 0 :(得分:15)
Range
是一种本机类型,是大多数无法实例化的浏览器。我对Ace并不熟悉,但我猜他们会使用某种命名空间,这样你就会做new Ace.Range()
之类的事情。
编辑:看起来他们正在使用CommonJS,因此您可以随意导入该方法并为其设置别名:
var Range = require('ace/range').Range,
mine = new Range(0,0,10,0);
答案 1 :(得分:2)
将require('ace/range').Range
替换为ace.require('ace/range').Range
答案 2 :(得分:0)
此解决方案var Range = ace.acequire('ace/range').Range;
对我有用!
答案 3 :(得分:0)
这对我有用:
import { Range } from "ace-builds"