2レベルナビゲーションを実装しようとしています。最初のレベルはaccordeonのように機能します。最初のレベルをクリックすると、子要素が表示されます。これは、単純にCSSクラスopen
を親のli
要素に追加することによって行われます。そして、これはすべて2 ngForループによって動的に生成されます。ここでAngular2:ngFor条件付きクラス
は私が今のところ持っているものです。
<ul>
<li *ngFor="let row of sidebaritem; let isOpen = false;" [class.open]="isOpen">
<a (click)="isOpen = !isOpen">{{row.title}}</a>
<ul>
<li *ngFor="let child of row.children">
<a [routerLink]="child.route">{{child.name}}</a>
</li>
</ul>
</li>
</ul>
問題は私が得ること、である「例外を:!参照または変数に割り当てることができません」 (click)="isOpen = !isOpen"
部分のエラーです。
どうすればこの問題を解決できますか? PierreDuc
TO
ソリューションTHANKSは、最も簡単な方法は、isOpen
呼ばsidebaritem
クラスにプロパティを追加し、ちょうどこのプロパティを操作することである。
class SidebarnaviItem {
isOpen: boolean = false;
constructor(public name?: string, public route?: any, public children?: SidebarnaviItem[]) {}
}
<ul>
<li *ngFor="let row of sidebaritem;" [class.open]="row.isOpen">
<a (click)="row.isOpen = !row.isOpen">{{row.title}}</a>
<ul>
<li *ngFor="let child of row.children">
<a [routerLink]="child.route">{{child.name}}</a>
</li>
</ul>
</li>
</ul>
(クリック)あなた.TS内の関数を参照する必要があります。 –