首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Angular 7.2.0自动更改检测不会在单击按钮时触发

Angular 7.2.0自动更改检测不会在单击按钮时触发
EN

Stack Overflow用户
提问于 2019-02-16 19:44:58
回答 1查看 690关注 0票数 0

我有一个组件,我们称它为组件A,在一个模块中,但在应用程序根组件模板中使用此组件。此组件A使用另一个组件显示一个按钮元素-让我们称其为组件B。

在组件A的模板中有组件B和另一个组件--让我们称之为组件C。组件C有*ngIf="show“。

组件A的类声明有一个action方法--让我们调用这个方法fetch()以及*ngIf的show属性。show属性设置为false。然后将fetch()方法传递到组件B(按钮组件),在组件B上(单击)调用该方法。

在fetch方法中,我将show从false更改为true。令我惊讶的是,我注意到当单击此按钮组件时,在组件A的类声明中,显示属性将更改为true,但不会在ngIf的模板中选取。

当我调试它不工作的原因时,我在组件B下面添加了一个button元素,并添加了(click)="fetch()“。

这是成功的,并且更改检测起作用了。

令我惊讶的是,当我将fetch方法传递给组件B调用时,更改检测不起作用,但当我使用模板中添加的按钮调用同样的方法时,它就起作用了。

从版本5/6开始,我就没有使用过angular了,我才刚刚开始使用它。

下一步是尝试将show属性设置为类的静态属性。

我本以为最初的实现不需要使用button元素就可以工作,但为什么它不工作呢?

组件B也属于不同的模块,并且与组件A不属于同一模块。

下面是上面的图像

EN

回答 1

Stack Overflow用户

发布于 2019-02-18 15:31:11

事实证明,这就是“这个”的背景。它引用的是调用回调的组件,而不是定义方法的父组件。

因此在上面的注释中,在父组件中将其更改为fetch = () => { ... }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54727005

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文