Đặt Giá trị cho trình chỉnh sửa ace mà không cần chọn toàn bộ trình chỉnh sửa


92

Vì vậy, bạn có thể đặt giá trị của trình chỉnh sửa ace với setValuenhưng sau khi đặt giá trị, trình chỉnh sửa sẽ chọn toàn bộ giá trị của trình chỉnh sửa. Làm thế nào để bạn vô hiệu hóa điều này? Điều này có nghĩa là khi tôi đặt giá trị của ace editor thành Hello world, nó sẽ không đánh dấuHello world

Câu trả lời:


165

Bạn có thể sử dụng tham số thứ hai để điều khiển vị trí con trỏ sau setValue

editor.setValue(str, -1) // moves cursor to the start
editor.setValue(str, 1) // moves cursor to the end

17

Bạn thậm chí có thể sử dụng clearSelection () sau khi bạn thực hiện một setValue ();

editor.setValue("Hello World");
editor.clearSelection(); // This will remove the highlight over the text


0

Tôi đã gặp vấn đề tương tự của bạn.

Mặc dù bạn có thể đặt tham số thứ hai thành 1 hoặc -1 , tôi nghĩ bạn cũng nên kiểm tra điều này: https://ace.c9.io/api/editor.html#Editor.setValue

Editor.setWrapBehavioursEnabled(Boolean enabled)

Sử dụng điều này ngay sau khi tạo trình chỉnh sửa.

Điều này làm việc rất tốt cho tôi. Sự khác biệt giữa phương pháp này và phương pháp được chia sẻ bởi người dùng là vị trí của dấu mũ không bị thay đổi, bạn có thể tự di chuyển nó bằng cách sử dụng Editor.selection.moveTo(row, column), theo cách này, người dùng sẽ không gặp phải các thay đổi vị trí dấu mũ kỳ lạ khi sử dụng, chẳng hạn như CTRL + Z để hoàn tác một hành động :)


1
Câu trả lời này không rõ ràng, bạn có nghĩa là việc gọi Editor.setWrapBehavioursEnabled(Boolean enabled)với một số giá trị ngay sau khi trình soạn thảo được khởi tạo sẽ ngăn tất cả văn bản được chọn khi gọi editor.setValue?
Macario

0
 var prevtext = $("#editor").val();
 prevtext = prevtext + "<br/>";
 $("#editor").val(prevtext).blur();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.