最近,我为一个朋友启动了一个项目,我需要使用事件。我以前只使用过一次(请注意)。不幸的是,我似乎无法让父母赶上发射。这是一些代码:
发出光的孩子:
@Output() reset: EventEmitter<any> = new EventEmitter();
changeRoute(val)
{
if (val.url = '/' && this.tuneholder.getTune() != null)
{
if (this.tuneholder.getTune().type == this.tune.type){
this.SetTune(this.tuneholder.getTune())
this.tuneholder.clearTune();
console.log("Emit");
console.log(this.tune);
this.reset.emit(this.tune);
}
}
这是父html:
<app-playeritem
[tune]="tune"
*ngFor="let tune of tunes"
(reset)='resetTuneVal($event)'>
</app-playeritem>
这是父类型secript:
resetTuneVal(tune:Tune){
console.log("Caught Emit");
console.log(tune);
this.tunes.forEach(elm => {
if (elm.type == tune.type){
this.SetTune(elm, tune);
}
});
}
存在用于发射的日志,但是没有用于捕获的日志。有任何想法吗?我觉得我做的还不错,但我真的迷路了。
答案 0 :(得分:0)
所以我想出了我的问题。我在路由器事件中称“发射”。这意味着父级不是我想的那样,它实际上是路由器的父级。我通过在ngOnInit()
上运行检查来解决了该问题,因为无论何时加载elem都会自动调用它。