Angular2 - 获取文本值的选定部分

时间:2016-07-25 20:20:46

标签: select text angular

我想创建一个简单的编辑器,例如使选定的文本更大胆。

有一个textarea"超级文字"值。

现在我选择此文本的一部分(例如" Super")。如何获得所选值?

<textarea (selected)=".."></textarea>

每次我在textarea中选择一些东西时都会调用一个函数。

<textarea (selected)="view(textarea.value)" #textarea></textarea>

当我选择某些内容时,这将打印整个textarea值。我只想打印将被选中的那部分文字。怎么做?

1 个答案:

答案 0 :(得分:5)

我看到你将你的函数与texarea上的(selected)属性绑定。这应该是(选择),因为这是为选择而触发的事件。但既然你说你正在执行你的回调,我会认为它是一个错字。

现在回答主要问题。在textarea上,您有两个属性selectionStart和selectionEnd,顾名思义就是选择开始和结束的值中位置的索引。因此,您可以使用

获取所选的子字符串
textarea.value.substring(textarea.selectionStart, textarea.selectEnd)

您可以在组件的函数中传递表达式的值。因此,你会这样做

<textarea (select)="view(textarea.selectionStart, textarea.selectEnd)" #textarea></textarea>

这是一个相同的工作小提琴。 https://jsfiddle.net/h191w4ed/1/