我试图从父组件的子组件中调用方法,因为我有此html代码作为父
<div class="right view-calendar">
<child *ngFor="let selectedMonth of selectedMonths" [viewDate]="selectedMonth" [monthList]="show()"></child>
</div>
父组件:
export class ParentComponent implements OnInit {
@ViewChildren(MonthHeaderComponent) months: any[];
show() {
this.months.method();
}
}
子组件
export class ChildComponent implements OnInit {
@Input() monthsList: Date[]
method() {
// code here....
}
}
我已经读过这个问题Can't get to @ViewChildren in parent component,但是我不知道是否有什么可以帮助我的。
我在这里做错了什么?
答案 0 :(得分:2)
您的类型错误,并且正在尝试在子代列表上而不是在子代本身上调用方法。
@ViewChildren(MonthHeaderComponent) months: QueryList<MonthHeaderComponent>;
我建议您使用模板变量来简化对该问题的理解:
<child *ngFor="..." #children [viewDate]="selectedMonth" [monthList]="show(children)"></child>
show(child) {
child.method();
}