【问题标题】:Angular2 - get selected part of text valueAngular2 - 获取文本值的选定部分
【发布时间】:2016-07-25 20:20:45
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 没有特定的Angular2方式。看看它是如何在 JS 中完成的。

标签: select text angular


【解决方案1】:

我看到您正在将函数与 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/

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多