ดังนั้นคุณสามารถกำหนดค่าของตัวแก้ไขเอซได้setValue
แต่หลังจากตั้งค่าแล้วตัวแก้ไขจะเลือกค่าทั้งหมดของตัวแก้ไข คุณจะปิดการใช้งานนี้ได้อย่างไร? ซึ่งหมายความว่าเมื่อฉันกำหนดค่าของตัวแก้ไขเอซHello world
มันจะไม่ไฮไลต์Hello world
ดังนั้นคุณสามารถกำหนดค่าของตัวแก้ไขเอซได้setValue
แต่หลังจากตั้งค่าแล้วตัวแก้ไขจะเลือกค่าทั้งหมดของตัวแก้ไข คุณจะปิดการใช้งานนี้ได้อย่างไร? ซึ่งหมายความว่าเมื่อฉันกำหนดค่าของตัวแก้ไขเอซHello world
มันจะไม่ไฮไลต์Hello world
คำตอบ:
คุณสามารถใช้พารามิเตอร์ที่สองเพื่อควบคุมตำแหน่งเคอร์เซอร์หลังจาก setValue
editor.setValue(str, -1) // moves cursor to the start
editor.setValue(str, 1) // moves cursor to the end
คุณยังสามารถใช้ clearSelection () หลังจากที่คุณทำ setValue ();
editor.setValue("Hello World");
editor.clearSelection(); // This will remove the highlight over the text
สิ่งนี้ใช้ได้กับฉัน!
editor.setValue(editor.getValue(), 1);
ฉันประสบปัญหาเดียวกันกับคุณ
แม้ว่าคุณจะตั้งค่าพารามิเตอร์ที่สองเป็น1หรือ-1 ได้แต่ฉันคิดว่าคุณควรตรวจสอบสิ่งนี้ด้วย: https://ace.c9.io/api/editor.html#Editor.setValue
Editor.setWrapBehavioursEnabled(Boolean enabled)
ใช้สิ่งนี้ทันทีหลังจากสร้างตัวแก้ไข
สิ่งนี้ได้ผลดีสำหรับฉัน ความแตกต่างระหว่างวิธีการนี้และหนึ่งร่วมกันโดยผู้ใช้ก็คือตำแหน่งที่ลูกศรที่จะไม่เปลี่ยนแปลงคุณสามารถย้ายตัวเองโดยใช้Editor.selection.moveTo(row, column)
วิธีนี้ผู้ใช้จะได้ประสบการณ์แปลกเปลี่ยนแปลงตำแหน่งตัวชี้เมื่อใช้การพูด, CTRL + Z เพื่อยกเลิก การกระทำ :)
var prevtext = $("#editor").val();
prevtext = prevtext + "<br/>";
$("#editor").val(prevtext).blur();
Editor.setWrapBehavioursEnabled(Boolean enabled)
ด้วยค่าบางอย่างหลังจากเริ่มต้นโปรแกรมแก้ไขแล้วจะป้องกันไม่ให้เลือกข้อความทั้งหมดเมื่อโทรeditor.setValue
หรือไม่?