我目前正在使用 HostListener 以便能够在用户键入用户文本的同时格式化用户文本。例如,如果用户正在输入电话号码,我希望能够根据需要添加格式。如果字符串为 0000,我希望文本为 000-0,如果文本为 0000000000,则为“(801) 123 - 1234”。我有这样做的逻辑,但我目前正在使用主机监听器来执行此操作。
@HostListener("textChange")
public onTextChange(target): void {
this.el.text = this.phoneFormatPipe.transform(this.el.text)
}
这可行,但它会一直调用自己,直到达到最大堆栈调用限制。这显然太慢了,所以我的问题是:如何在不触发 textChange 事件的情况下修改元素内的文本?还是有其他方法可以做到这一点?
提前致谢!快乐编码!