2013-09-04 48 views
71

Vì vậy, bạn có thể đặt giá trị của trình chỉnh sửa ace với setValue như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 khi tôi thiết lập giá trị của biên tập viên ace để Hello world, nó sẽ không làm nổi bật Hello worldĐặt giá trị cho trình chỉnh sửa ace mà không chọn toàn bộ trình chỉnh sửa

Trả lời

118

Bạn có thể sử dụng tham số thứ hai để kiểm soát vị trí con trỏ sau setValue

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

này làm việc cho tôi!

editor.setValue(editor.getValue(), 1); 
0
var prevtext = $("#editor").val(); 
prevtext = prevtext + "<br/> 
$("#editor").val(prevtext).blur(); 
+0

Mã này có lỗi cú pháp – FrankerZ

6

Bạn thậm chí có thể sử dụng clearSelection() sau khi bạn làm 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ự.

Mặc dù bạn có thể thiết lập các tham số thứ hai cho một trong hai hoặc -1, tôi nghĩ bạn cũng nên kiểm tra này: https://ace.c9.io/api/editor.html#Editor.setValue

Editor.setWrapBehavioursEnabled(Boolean enabled) 

Sử dụng quyền này sau khi tạo trình soạn thảo.

Điều này hoạt động rất tốt đối với 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 a user là vị trí của dấu mũ không bị thay đổi, bạn có thể 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 những thay đổi vị trí dấu nháy kỳ lạ khi sử dụng, CTRL + Z undo an action :)

+0

Câu trả lời này không rõ ràng, bạn có nghĩa là 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 chạy sẽ ngăn tất cả văn bản được chọn khi gọi 'editor.setValue'? – Macario

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