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

elz*_*zoy 1 select text angular

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

有一个具有“超级文本”值的文本区域。

现在,我选择该文本的一部分(例如“ Super”)。如何获得所选值?

<textarea (selected)=".."></textarea>
Run Code Online (Sandbox Code Playgroud)

每当我在textarea中选择某些内容时,都会调用一个函数。

<textarea (selected)="view(textarea.value)" #textarea></textarea>
Run Code Online (Sandbox Code Playgroud)

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

mla*_*ara 5

我看到您正在使用texarea上的(selected)属性绑定功能。这应该是(选择),因为这是为选择触发的事件。但是由于您说您正在执行回调,所以我认为这是一个错字。

现在是主要问题。在文本区域上,您具有两个属性selectionStart和selectionEnd,顾名思义,这两个属性是值的开始位置和结束位置的索引。因此,您可以使用来获取选定的子字符串

textarea.value.substring(textarea.selectionStart, textarea.selectEnd)
Run Code Online (Sandbox Code Playgroud)

您可以在组件的函数内部传递表达式的值。因此,您将这样做

<textarea (select)="view(textarea.selectionStart, textarea.selectEnd)" #textarea></textarea>
Run Code Online (Sandbox Code Playgroud)

这是同样的工作提琴。https://jsfiddle.net/h191w4ed/1/