Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular expressionchangedfterchecked在回车时但未单击_Angular_Angular7 - Fatal编程技术网

Angular expressionchangedfterchecked在回车时但未单击

Angular expressionchangedfterchecked在回车时但未单击,angular,angular7,Angular,Angular7,在angular 7应用程序中,如果在输入字段中按enter键,则会出现此错误,但如果单击搜索按钮,则不会出现此错误: ExpressionChangedTerithasBeenCheckedError:表达式在检查后已更改。上一个值:“igx输入组--聚焦:true”。当前值:“igx输入组--聚焦:false” 触发它的代码如下所示: 资产搜索 按序列号、Etag、条形码或RFID进行搜索 搜寻 如您所见,按enter键并单击按钮都会调用onSearchPressed()方法。我不明白为

在angular 7应用程序中,如果在输入字段中按enter键,则会出现此错误,但如果单击搜索按钮,则不会出现此错误:

ExpressionChangedTerithasBeenCheckedError:表达式在检查后已更改。上一个值:“igx输入组--聚焦:true”。当前值:“igx输入组--聚焦:false”

触发它的代码如下所示:


资产搜索
按序列号、Etag、条形码或RFID进行搜索
搜寻

如您所见,按enter键并单击按钮都会调用
onSearchPressed()
方法。我不明白为什么一个会导致错误,而另一个不会。我只是猜测,但这个错误很可能是由于
igxInput
enter
按键的反应造成的。由于
igxInput
指令绑定到
标记,因此它会对enter作出反应,但不会对单击
元素作出反应。

将您的方法包装在setTimeout中,之后它将运行自己的changedetection,此错误将消失


希望对您有所帮助

似乎按下
enter
会触发
onSearchPressed()
两次。一个是从按钮
中单击
(因为它可能处于焦点位置),另一个是从
keyup中输入
。所以它抛出了这个错误,因为在
ChangeDetection
的1个周期完成时,值被更改了。根据我的调试,它只会被按时调用。看起来像是黑客吗?如果它能让我暂时过关,我一定会试试的!