Angular expressionchangedfterchecked在回车时但未单击
在angular 7应用程序中,如果在输入字段中按enter键,则会出现此错误,但如果单击搜索按钮,则不会出现此错误: ExpressionChangedTerithasBeenCheckedError:表达式在检查后已更改。上一个值:“igx输入组--聚焦:true”。当前值:“igx输入组--聚焦:false” 触发它的代码如下所示:Angular expressionchangedfterchecked在回车时但未单击,angular,angular7,Angular,Angular7,在angular 7应用程序中,如果在输入字段中按enter键,则会出现此错误,但如果单击搜索按钮,则不会出现此错误: ExpressionChangedTerithasBeenCheckedError:表达式在检查后已更改。上一个值:“igx输入组--聚焦:true”。当前值:“igx输入组--聚焦:false” 触发它的代码如下所示: 资产搜索 按序列号、Etag、条形码或RFID进行搜索 搜寻 如您所见,按enter键并单击按钮都会调用onSearchPressed()方法。我不明白为
资产搜索
按序列号、Etag、条形码或RFID进行搜索
搜寻
如您所见,按enter键并单击按钮都会调用
onSearchPressed()
方法。我不明白为什么一个会导致错误,而另一个不会。我只是猜测,但这个错误很可能是由于igxInput
对enter
按键的反应造成的。由于igxInput
指令绑定到
标记,因此它会对enter作出反应,但不会对单击
元素作出反应。将您的方法包装在setTimeout中,之后它将运行自己的changedetection,此错误将消失
希望对您有所帮助似乎按下
enter
会触发onSearchPressed()
两次。一个是从按钮中单击
(因为它可能处于焦点位置),另一个是从keyup中输入
。所以它抛出了这个错误,因为在ChangeDetection
的1个周期完成时,值被更改了。根据我的调试,它只会被按时调用。看起来像是黑客吗?如果它能让我暂时过关,我一定会试试的!