Когда я пытаюсь создать объект Range в ace.js, выдается ошибка "Illegal Constructor"

Я пытаюсь создать объект Range для ace.js редактор в моем коде, но он не работает. Это терпит неудачу так, как я не могу понять. В документации Ace этот конструктор:

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

Но когда я попробую это в моем коде:

new Range(0, 0, 0, 1)

Это поднимает Uncaught TypeError: Illegal constructor ошибка. Что вызывает это поведение, и почему оно не соответствует документации?

3 ответа

Решение

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; работает для меня!!!

Полный код: /questions/19937673/mozhno-li-serializovat-obekt-ace-session/19937684#19937684

Другие вопросы по тегам