我希望子组件在其父组件中发出两个不同的事件,具体取决于用户单击的按钮。第一个( onSelectedKat )工作正常。但第二个( onAllClick )不起作用。它具有与第一个相同的结构,我只是更改了名称。
我试图跳过所有不必要的代码,所以它不会太混乱。
这是孩子的html代码。它有两个按钮,点击时调用两个不同的功能。这些函数依次调用发射器函数。
<a (click)="selectKat(kategorie.name)" class="btn btn-default btn-kat" role="button">{{kategorie.name}}</a>
<a (click)="clickAll()" class="btn btn-default btn-kat" role="button">Alle</a>
这是孩子的代码。在这里它被卡在 clickAll()函数中。 console.log可以运行,但之后的所有内容都没有。
import { EintraegeComponent } from '../eintraege/eintraege.component';
@Component({
selector: 'app-kategorien',
templateUrl: './kategorien.component.html',
styleUrls: ['./kategorien.component.css'],
})
export class KategorienComponent implements OnInit {
@Output() onSelectedKat = new EventEmitter<string>();
@Output() onAllClick = new EventEmitter<any>();
constructor() {}
ngOnInit() {}
selectKat(name: string){
this.onSelectedKat.emit(name);
}
clickAll(){
console.log("clicked in child works");
this.onAllClick.emit();
}
}
这是父母的代码。但是,那个中的 onAllClick()永远不会被调用。
@Component({
selector: 'app-eintraege',
templateUrl: './eintraege.component.html',
styleUrls: ['./eintraege.component.css']
})
export class EintraegeComponent implements OnInit {
eintraegegeordnet:boolean;
toFilter:string;
constructor() {
this.eintraegegeordnet = false;
}
ngOnInit() {}
onAllClick(){
console.log("Click in parent works");
this.toFilter = "boo";
this.eintraegegeordnet = false;
}
onSelectedKat(name:string){
this.eintraegegeordnet = true;
this.toFilter = name;
}
}
任何人都可以告诉我我做错了什么,为什么其中一个有效,另一个没有?
答案 0 :(得分:0)
感谢来自Raed Khalaf的提示,它现在有效。我忘了在父HTML中添加该功能。
<app-kategorien (onSelectedKat)="onSelectedKat($event)" (onAllClick)="onAllClick($event)"></app-kategorien>