Невозможно переместить курсор в выделенном тексте и изменить текст
У меня есть мобильное приложение CordovaJS/Angular 1.x, и у меня есть представление, представленное ниже с div редактируемого содержимого - при наборе текста в редактируемом div пользователь не может переместить курсор для редактирования текста - но дополнительная логика ниже требуется, чтобы пользователь мог печатать текстовый фокус и затем снова, когда div снова в фокусе, чтобы продолжить печатать текст в конце существующего текста
В настоящее время в приведенном ниже коде есть проблема, из-за которой я могу ввести текст, но затем я не могу нажать внутри текстовой строки и редактировать с выбранной пользователем позиции существующей строки.
например, если пользователь введет "Мое имя Jon Smidth", он не сможет нажать внутри любого слова, чтобы исправить любые опечатки, которые он мог сделать - какие-либо идеи о том, как это исправить?
// шаблон (не все видно для ясности)
<div class="post-textarea-wrapper" ng-click="focusTextArea()">
<div contenteditable id="post-textarea" ng-model="post.text" ng-click="focusMdpInput($event)"
ng-trim="false" ng-blur="showHidden()"></div>
<!-- additional code not shown for clarity -->
// Контроллер
$scope.focusTextArea = function(service) {
document.getElementById("post-textarea").focus();
if ($scope.post.text.length > 1) {
setEndOfContenteditable($("div#post-textarea").get(0));
}
};
function setEndOfContenteditable(contentEditableElement)
{
var range,selection;
range = document.createRange();//Create a range (a range is a like the selection but invisible)
range.selectNodeContents(contentEditableElement);//Select the entire contents of the element with the range
range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start
selection = window.getSelection();//get the selection object (allows you to change selection)
selection.removeAllRanges();//remove any selections already made
selection.addRange(range);//make the range you have just created the visible selection
}