Я пытаюсь вручную щелкнуть аккордеон, когда компонент загружается. Но в моем случае я получил ошибку консоли, как я упоминал в заголовке, и аккордеон также не нажимается.
аккордеон:
<div class="accordion col-sm-12" id="accordion1" *ngFor='let data of dropdownData; let i=index'>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle h6" data-toggle="collapse" data-parent="#accordion1" href="#collapseTwo + i" #accordion>
{{data?.CAMD_ENTITY_DESC}}
</a>
</div>
<div *ngFor='let group of data.group; let j=index' id="collapseTwo + i" class="accordion-body collapse"
style="margin-left:10px">
<div class="accordion-inner">
<div class="accordion" id="accordion2">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" [href]="'#collapseInnerTwo' + j">
{{group?.CAMD_PRGRP_DESC}}
</a>
</div>
<div [id]="'collapseInnerTwo' + j" class="accordion-body collapse" style="margin-left:10px;margin-top:3px">
<div class="accordion-inner" *ngFor='let subgroup of group?.subgroup; let i=index'>
{{subgroup?.CAMD_PRSGRP_DESC}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Здесь я дал #accordion, чтобы получить elementRef.
компонент
export class TwoComponent implements OnInit, AfterViewInit {
dropdownData: any;
id: number = 0;
@ViewChildren('accordion') a: QueryList<ElementRef>;
constructor(private route: ActivatedRoute, private CartdataService: CartdataServiceService) { }
ngOnInit() {
this.CartdataService.get_New_Products().subscribe(
data => {
this.dropdownData = data;
});
}
ngAfterViewInit() {
this.a.changes.subscribe(() => {
let elementRef = this.a.toArray()[this.id];
$(elementRef.nativeElement).trigger("click");
});
}
}
Может ли кто-нибудь помочь мне решить эту проблему.