【发布时间】:2020-03-25 01:37:50
【问题描述】:
当我在父元素中按下箭头时,我总是发出 true。当发射器从未定义变为真时,子仅在开始时接收更改。是否有一种方法可以在父级发出某些内容时始终调用该函数,即使它的值与 lat time 相同?
父 HTML:
<div (click)="emit()">
<child [changed_slide]= "changed_slide"></child>
父.ts:
emit(){this.changed_slide.emit(true);}
孩子:
ngOnChanges(changes: { [property: string]: SimpleChange }){
let change: SimpleChange = changes['changed_slide'];
console.log(change);
}
所以我希望每次单击父 div 时都会发出“true”(或其他所有内容,我只想发出一些东西以便在子项中执行某些操作),然后会自动触发一个函数孩子。每次我点击父母时,孩子都会做一些事情。 我会很感激任何想法,谢谢!
【问题讨论】:
-
非常不清楚。发布一个完整的最小示例来重现该问题,准确说明您在做什么,您期望发生什么以及会发生什么。没有任何上下文的 5 行代码是不够的。
-
谢谢JB,我现在编辑了描述。
-
true is 每次点击时都会发出。但是您提供给孩子的 changed_slide 输入从
true变为true。所以它根本没有改变。所以 ngOnChanges() 不会被调用,因为输入值不会改变。发出一个不同的值。或者使用共享服务并订阅该共享服务从子级公开的可观察对象。 -
看看here
标签: angular parent-child onchange eventemitter event-binding