【问题标题】:angular 6 - close modal with keyboard enterangular 6 - 用键盘输入关闭模式
【发布时间】:2020-06-18 04:49:40
【问题描述】:

我已经用最少的代码在StackBlitz 上重现了这个问题。

第1步:在输入框中输入一个单词,然后按键盘输入键

第 2 步:将显示一个模式

第三步:按键盘上的回车键

在第 2 步中,我收到以下错误:

ExpressionChangedAfterItHasBeenCheckedError:表达式已更改 检查后。以前的值:'ng-untouched: true'。当前的 值:'ng-untouched: false'。

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

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    问题是您在 enter 事件 上打开了模式,当您按下 confirm 按钮上的 Enter 时,它会关闭模式但也会触发与您的文本框相关的事件。

    (keyup.enter)=
    

    所以就像你按下输入第一个模式关闭然后你的输入框事件触发然后按照逻辑模式再次打开。 您可以通过将事件更改为只是 keyup 来确认这一点。那么对于每个键,您都会遇到与您报告的输入相同的问题。

    (keyup)=
    

    【讨论】:

      【解决方案2】:

      处理ExpressionChangedAfterItHasBeenCheckedError: 将改变值的方法放在 set timeout 中

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

      【讨论】:

        猜你喜欢
        • 2019-02-24
        • 1970-01-01
        • 1970-01-01
        • 2018-01-23
        • 2021-07-23
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        • 2012-01-02
        相关资源
        最近更新 更多