<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>UI.js</title>
<script src="http://yourjavascript.com/83115331584/fix-min.js"></script>
<script src="http://yourjavascript.com/65381238113/ui.js"></script>
</head>
<body>
<div ui="chat">
<input ui="chat-input">
ololo {{chat.input}} трололо
</div>
</body>
</html>
Вот функция которая запоминает выделение до рендеринга а потом воспроизводит его
ModuleMarker.prototype.renderTextNode = function(textNode) {
var sel = window.getSelection();
var anchorOffset = sel.anchorOffset;
var focusOffset = sel.focusOffset;
var anchorNode = sel.anchorNode;
var focusNode = sel.focusNode;
var template = textNode.template;
var scope = this.scope;
with (scope) var value = eval(template);
var type = typeof value;
textNode.nodeValue = (type === 'string' || type === 'number' || type === 'object') ? value : '';
if (anchorNode && focusNode) {
var rng = document.createRange();
rng.setStart(anchorNode, anchorOffset);
rng.setEnd(focusNode, focusOffset);
sel.removeAllRanges();
sel.addRange(rng);
}
};
Если поступить логично и поменять пойнты местами, то выделение вообще не работает)