我是 Angular 的新手,我有父母作為章節,孩子作為講座,一旦用戶點擊一個章節,切換將顯示本章的講座并隱藏其他章節的講座。我已經用chapterId命名了講座類,例如list-lectures203,其中203是這些講座章節的ID,依此類推,我必須為Dragula服務作為createGroup這樣做,到目前為止,如果我點擊它,它現在可以用于第一次顯示回到任何一章,它會說類名已經存在
名為:“lectures-list203”的組已經存在。
我認為這是因為 Html 之前已經呈現并且仍然存在所以我該如何解決這個問題?

this.dragulaService.createGroup(`lectures-list${this.chapter.id}`, {
moves: function (el, container, handle) {
return !handle.classList.contains('edit-mode');
}
});
<ul [ngClass]="canDrag?'':'edit-mode'" class="list-group" [(dragulaModel)]="courseLecturesForm.value.lectures" dragula="lectures-list{{this.chapter.id}}" id="lectures-list{{this.chapter.id}}">
<li [ngClass]="canDrag?'':'edit-mode'" class="list-group-item draggable array-card-header" formArrayName="lectures"
*ngFor="let lecture of courseLecturesForm.get('lectures')['controls']; let i = index;">
</li>
</ul>
toggle(item, i) {
item.shown = !item.shown;
this.current = i;
}
uj5u.com熱心網友回復:
您需要在 ngOnDestroy 中銷毀拖動服務
ngOnDestroy(): void {
this.dragulaService.destroy(`lectures-list${this.chapter.sort_order}`);
}
uj5u.com熱心網友回復:
也許你會在下面找到答案
//ts file
selectedMenu='';
toggle(id){
this.selectedMenu=id;
}
<!-- html file -->
<ul >
<li *ngFor="let lecture of courseLecturesForm.get('lectures')['controls']; let i = index;" (click)="toggle(chapterid)" >
<child-component [ngClass]="{selected:selectedMenu==chapterid}"></child-component>
<!--or -->
<ul [ngClass]="{selected:selectedMenu==chapterid}"></ul>
</li>
</ul>
據我所知,這就是你要找的。讓我知道您需要的任何更改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/522726.html
標籤:有角度的
