我正在使用在 Angular 中创建的标签输入。 我面临的问题是,每当我按退格键输入最后一个字符时,它也会删除前一个标签。
我不会在输入为空时立即删除先前的标签,我想在用户第二次按退格键时删除。例如,在 Gmail 中,我们撰写一封新电子邮件并发送给多个电子邮件 ID。
发生这种情况是因为以下代码:
if (event.code === 'Backspace' && !inputValue) {
this.removeTag();
return;
}
我已经尝试了很多方法,但无法修复这个错误。
这是一个 stackblitz 链接:Stackblitz Link
我该如何解决?
最佳答案
您可以使用keydown
代替keyup
。
为了解释更多,当按下退格键(keydown)时, native 输入元素将删除指针处的字符。之后你的逻辑被触发(keyup)。此时,输入字段中的前一个字符是前一个芯片的一部分,这就是它被删除的原因。
关于angular - 如何在按最后一个退格键时不移除标签输入芯片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66157836/