是因为数据双向绑定导致的,编辑器接收值后会重新渲染编辑器,会导致光标移动到最开头。
解决办法:每次更新前暂存光标位置,然后重新setValue..
// 记录光标位置
const position = this.aceEditor.getCursorPosition();
// 数据重新赋值
this.aceEditor.getSession().setValue(val);
// 清除
this.aceEditor.clearSelection();
// 移动光标到那个位置
this.aceEditor.moveCursorToPosition(position);
aceEditor 为编辑器实例