我想创建一个简单的编辑器,例如使选定的文本更大胆。
有一个textarea"超级文字"值。
现在我选择此文本的一部分(例如" Super")。如何获得所选值?
<textarea (selected)=".."></textarea>
每次我在textarea中选择一些东西时都会调用一个函数。
<textarea (selected)="view(textarea.value)" #textarea></textarea>
当我选择某些内容时,这将打印整个textarea值。我只想打印将被选中的那部分文字。怎么做?
答案 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/