Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何解决文本编辑器中的光标问题_Angularjs_Text Editor - Fatal编程技术网

Angularjs 如何解决文本编辑器中的光标问题

Angularjs 如何解决文本编辑器中的光标问题,angularjs,text-editor,Angularjs,Text Editor,如果输入拼写错误的单词,我正在使用文本编辑器。每当我纠正拼写错误的单词,并且我处于当前位置,在删除拼写错误单词的一个字母后,我正在纠正拼写错误,这会使我再次回到之前的位置,或者你可以在语句末尾说。我如何解决这个问题 public moveCaret(win, chars) { var sel, range; // word_count chars sel = window.getSelection(); if (sel) { sel = win.g

如果输入拼写错误的单词,我正在使用文本编辑器。每当我纠正拼写错误的单词,并且我处于当前位置,在删除拼写错误单词的一个字母后,我正在纠正拼写错误,这会使我再次回到之前的位置,或者你可以在语句末尾说。我如何解决这个问题

public moveCaret(win, chars) {
    var sel, range;
    // word_count chars
    sel = window.getSelection();
    if (sel) {
        sel = win.getSelection();
        if (sel.character > 0) {
            var word_count = sel.focusNode;
            var newOffset = sel.focusOffset + chars;
            sel.collapse(word_count, Math.min(word_count.length, newOffset));
            console.log(newOffset, 'new')
        }
    } else if ( (sel = win.document.selection) ) {
        if (sel.type != "Control") {
            range = sel.createRange();
            range.move("character", chars);
            range.select();
        }
    }
}

不知道您在代码中做什么,因为您没有提供代码,所以无法修复代码;但是看到
jQuery
Angularjs
标记在一起,我并不奇怪您会遇到问题……我已经分享了一段代码,请查看一下。请正确地引导我。感谢问题是,由于Angular会在数据更改时重新生成视图,因此文本区域也会重新生成,因此光标不会保持原来的位置。这是一个众所周知的问题,文本区域和可编辑的div在角度。就我个人而言,我从来没有能够正确地解决这个问题……我顺便问一下,你能用Javascript或Angular分享一些有用的资料吗?“任何有用的资料”?:)是的,Youtube、Udemy和数百万科技网站上到处都是有用的材料、教程和课程!