Angular Place选择文本在Bootstrap元素内

时间:2016-07-07 02:44:35

标签: angularjs angular-ui-bootstrap

我是一个有角度的初学者,我已经在这个问题上工作了几天,但我还没有完全解决它。我正在尝试创建一个指令,当用户突出显示某些文本时,会在选择周围自动创建一个ui-bootstrap工具提示。我有以下代码几乎可以做我想要的。

span

上面代码的问题在于它用工具提示替换了所选文本的每个实例 - 我只想将工具提示放在所选的实际文本周围。

我看过像this one这样的帖子,它们展示了如何用以下方式用function surroundSelection() { var span = document.createElement("span"); span.style.fontWeight = "bold"; span.style.color = "green"; if (window.getSelection) { var sel = window.getSelection(); if (sel.rangeCount) { var range = sel.getRangeAt(0).cloneRange(); range.surroundContents(span); sel.removeAllRanges(); sel.addRange(range); } } } 元素替换所选文本

{{1}}

但我不认为这种方法与工具提示等ui-bootstrap元素兼容。我非常坚持这一点,所以任何建议都会非常感激。

1 个答案:

答案 0 :(得分:1)

当您从selection获取匹配文本并从那里继续前进时,原始上下文已经丢失 - 如果您有多个{0},则无法知道您选择了哪个foo你的段落。

为了达到您的需要,您需要处理selection本身,这样您就可以找到它以删除和添加新内容。

您可以参考以下答案:https://stackoverflow.com/a/6252893/5039495