2012-05-04 26 views
8

Tôi đang cố gắng tạo đối tượng Phạm vi cho trình chỉnh sửa ace.js trong mã của tôi, nhưng nó không hoạt động. Đó là thất bại trong một cách tôi không thể tìm ra. Trong the Ace documentation, constructor này là:Khi tôi cố gắng tạo đối tượng Phạm vi trong ace.js, lỗi "Trình xây dựng bất hợp pháp" được ném

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

Nhưng khi tôi cố gắng này trong mã của tôi:

new Range(0, 0, 0, 1) 

Nó đặt ra một lỗi Uncaught TypeError: Illegal constructor. Điều gì gây ra hành vi này và tại sao nó không khớp với tài liệu?

Trả lời

14

Range là kiểu gốc là hầu hết các trình duyệt mà bạn không thể khởi tạo. Tôi không thực sự quen thuộc với Ace, nhưng tôi đoán rằng họ sử dụng một số loại không gian tên để bạn sẽ làm một cái gì đó như new Ace.Range().

Edit: Dường như họ đang sử dụng CommonJS, vì vậy bạn có thể nhập các phương pháp và bí danh nó tuy nhiên bạn muốn:

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

đó là nó, chỉ là tôi 'không sử dụng CommonJS, vì vậy giải pháp là 'var Range = ace.require (' ace/range '). Phạm vi' Cảm ơn bạn rất nhiều. –

1

Thay require('ace/range').Range với ace.require('ace/range').Range

Các vấn đề liên quan