2012-05-04 19 views
8

Estoy intentando crear un objeto Range para el editor ace.js en mi código, pero no está funcionando. Está fallando de una manera que no puedo entender. En the Ace documentation, este constructor es:Cuando intento crear un objeto Range en ace.js, se produce un error de "Constructor Ilegal"

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

Pero cuando intento esto en mi código:

new Range(0, 0, 0, 1) 

Se genera un error Uncaught TypeError: Illegal constructor. ¿Qué está causando este comportamiento y por qué no coincide con la documentación?

Respuesta

14

Range es un tipo nativo es la mayoría de los navegadores que no puede crear instancias. No estoy muy familiarizado con Ace, pero supongo que utilizan algún tipo de espacio de nombres para que pueda hacer algo como new Ace.Range().

Editar: Parece que se están utilizando CommonJS, lo que puede importar el método y el alias que usted quiera:

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

eso fue todo, sólo que yo No estoy usando CommonJS, entonces la solución fue 'var Range = ace.require ('ace/range'). Range' Muchas gracias. –

1

Reemplazar require('ace/range').Range con ace.require('ace/range').Range

Cuestiones relacionadas