angular - 如何在按最后一个退格键时不移除标签输入芯片?

标签 angular typescript ng-tags-input

我正在使用在 Angular 中创建的标签输入。 我面临的问题是,每当我按退格键输入最后一个字符时,它也会删除前一个标签。

example

我不会在输入为空时立即删除先前的标签,我想在用户第二次按退格键时删除。例如,在 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/

相关文章:

Angular 4 - ngModelChange 在两个选择表单绑定(bind)期间抛出无法读取未定义的属性 '...'

angular - 无法绑定(bind)到 'ngModel',因为它不是 'input' 的已知属性,尽管导入了 FormsModule

typescript - 将 ts-node 与 TypeScript 增量构建一起使用

Angular 表单验证 - 如何包含来自 ng-template 的输入?

javascript - ng标签输入不允许在文本框中输入两次相同的文本

angularjs-directive - 当 minLength 为 0 ngInputTag 时如何显示下拉列表?

javascript - Observable<void> 不调用订阅者

typescript - 如何在 Svelte 中实现 Google Analytics GTAG GDPR 合规性

javascript - ngTagsInput - 设置 onTagAdding 回调

angular - 如何使用 ngFor 基于对象属性动态加载多个 ng-template