ngOnChanges 在 Angular4 中不起作用

Posted

技术标签:

【中文标题】ngOnChanges 在 Angular4 中不起作用【英文标题】:ngOnChanges not working in Angular4 【发布时间】:2018-10-14 11:21:27 【问题描述】:

我知道我不是第一个提出这个问题的人,而且我已经尝试过 *** 中关于此问题的许多帖子的解决方案,但对我没有任何帮助。

当用户单击这些菜单时,我的父组件中有一个手风琴菜单,单击菜单的隐藏ID将传递给子组件,在子组件中我需要根据父组件值调用API .

这里我在 Stackblitz 中复制了我的问题,请看一下并给我解决这个问题的解决方案。

https://stackblitz.com/edit/angular-bootstrap-carousel-dynamic2-dssqrc?file=app/child/child.component.ts

【问题讨论】:

请在 SO 帖子中包含相关代码部分。 @pixelbits 我已经在stackblitz中复制了我所有的代码,请看一下 【参考方案1】:

我没有找到触发点击事件的代码 :(。模板变量在循环中,但在循环之外使用。我推荐一个替代解决方案,通过 app.component 中的属性。在 stackblitz 中分叉 @ 987654321@

【讨论】:

而不是点击菜单名称,我想将菜单的 id 从子组件传递给 api,因为我使用了隐藏的文本框,如果你帮助我获取隐藏的文本框 id 值,它会很有帮助对我来说 我已经在 ngOnchanges 中发布了 API 调用,在这里我遇到了一个问题,如果我单击值已更改但未传递给 API 的子类别,它总是传递“this.C_code”值,你能告诉我为什么会这样 ngOnChanges 在子组件中调用,如果仅更改了 @Input 属性值。如果您多次单击同一项目,则不会调用 ngOnChanges。 我尝试了不同的值,但 ngOnchanges 总是将 100(类别 ID)传递给 API 因为在这个例子中只有一个代码为 100 的类别。它是 Indian Spices 类别。

以上是关于ngOnChanges 在 Angular4 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 单元测试中未调用 ngOnChanges detectChanges()

ngModel 在 Angular4 中不起作用

使用 angular4 的拖放事件在 IE11 中不起作用

ngOnchanges 和 DoCheck 角度

如何停止在 ngOnInit() 之前调用的 ngOnChanges

为啥 Angular 2 ngOnChanges 不响应输入数组推送