无法从父级的@viewchildren调用方法

时间:2018-12-05 12:06:50

标签: angular

我试图从父组件的子组件中调用方法,因为我有此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,但是我不知道是否有什么可以帮助我的。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您的类型错误,并且正在尝试在子代列表上而不是在子代本身上调用方法。

@ViewChildren(MonthHeaderComponent) months: QueryList<MonthHeaderComponent>;

我建议您使用模板变量来简化对该问题的理解:

<child *ngFor="..." #children [viewDate]="selectedMonth" [monthList]="show(children)"></child>
show(child) {
  child.method();
}