角度6-使用键盘输入关闭模态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了角度6-使用键盘输入关闭模态相关的知识,希望对你有一定的参考价值。

我用最少的代码复制了StackBlitz上的问题。

步骤1:在输入中输入单词,然后按键盘的Enter键

步骤2:将显示模式

步骤3:按键盘上的Enter键

在步骤2中,我得到以下错误:

ExpressionChangedAfterItHasBeenCheckedError:表达式已更改 经过检查后。先前的值:“ ng-untouched:true”。当前 值:'ng-untouched:false'。

步骤3应该关闭模态,但是模态关闭然后重新打开,但是,当我用鼠标按下确认按钮时,它会正确关闭模态。

答案

问题是您在输入事件上打开了模式,同时按下了[[confirm按钮上的回车,它关闭了模式但也触发了与您的文本框有关的事件。

(keyup.enter)=
所以就像当您按下Enter键时,先关闭模式,然后触发输入框事件,然后再按逻辑模式打开。您可以通过将事件更改为仅keyup来确认。然后使用每个键,您将遇到与报告输入相同的问题。

(keyup)=

另一答案
要处理ExpressionChangedAfterItHaHasBeenCheckedError:将更改值的方法放在set timeout内

setTimeout(() => { // Method changing the value of property },0);

以上是关于角度6-使用键盘输入关闭模态的主要内容,如果未能解决你的问题,请参考以下文章

角度5 - 模态指令

模态关闭后,键盘显示错误的颜色 - iOS

是否可以在角度6中打开模态而不使用仅材料的自举?

关闭时,横向iPad上带有键盘的模态视图控制器会更改位置[重复]

我应该在关闭视图之前关闭键盘吗?

不要在角度模态中保存范围更改