如何在按下最后一个退格键时不移除标签输入芯片?
How to not remove the tag input chip when hitting the last backspace?
我正在使用在 Angular 中创建的标签输入。
我面临的问题是,每当我为最后一个字符按下退格键时,它也会删除之前的标签。
我不会在输入为空时立即删除上一个标签,我想在用户第二次按下退格键时删除。例如在 Gmail 中,当我们撰写一封新电子邮件并发送到多个电子邮件 ID 时。
发生这种情况是因为以下代码:
if (event.code === 'Backspace' && !inputValue) {
this.removeTag();
return;
}
我尝试了很多方法,但无法修复此错误。
这是一个 stackblitz link:Stackblitz Link
我该如何解决?
您可以使用 keydown
而不是 keyup
。
进一步说明,当按下退格键(keydown)时,本机输入元素将删除指针处的字符。之后你的逻辑被触发(keyup)。那时输入字段中的前一个字符是前一个芯片的一部分,这就是它被删除的原因。
我正在使用在 Angular 中创建的标签输入。 我面临的问题是,每当我为最后一个字符按下退格键时,它也会删除之前的标签。
我不会在输入为空时立即删除上一个标签,我想在用户第二次按下退格键时删除。例如在 Gmail 中,当我们撰写一封新电子邮件并发送到多个电子邮件 ID 时。
发生这种情况是因为以下代码:
if (event.code === 'Backspace' && !inputValue) {
this.removeTag();
return;
}
我尝试了很多方法,但无法修复此错误。
这是一个 stackblitz link:Stackblitz Link
我该如何解决?
您可以使用 keydown
而不是 keyup
。
进一步说明,当按下退格键(keydown)时,本机输入元素将删除指针处的字符。之后你的逻辑被触发(keyup)。那时输入字段中的前一个字符是前一个芯片的一部分,这就是它被删除的原因。