单击按钮时不会触发Angular 7.2.0自动更改检测[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有一个组件让我们在一个模块中调用组件A,但在app根组件模板中使用此组件。这个组件A使用另一个组件显示一个按钮元素 - 让我们调用这个组件B.

在组件A的模板中有组件B和另一个组件 - 让我们调用这个组件C.组件C有* ngIf =“show”。

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

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

当我调试它为什么不工作时,我在组件B下面添加了一个按钮元素并添加了(click)=“fetch()”。

这是成功的,变化检测有效。

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

从5/6版本开始我就没有使用角度,我只是回到了它。

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

我期待初始实现,而不必使用按钮元素工作,但为什么它不起作用。

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

下面是上面的图像

enter image description here

angular angular-components angular-ng-if
1个回答
0
投票

结果归结为“这个”背景。它指的是调用回调的组件,而不是定义方法的父组件。

因此,如上面的评论中所述,将其更改为父组件中的fetch = () => { ... }

© www.soinside.com 2019 - 2024. All rights reserved.