アングル2で折り畳み可能なアコーディオンメニューを作成しようとしています。現時点では、私のコードでアングル2のアニメーションを使用してサブメニューを拡大/問題は、親がクリックされたときに、特定のサブメニューを展開する必要があることです。アングル2のアニメーションを使用してアコーディオンナビゲーションを作成する
私の現在のセットアップ次のようになります。今
<nav>
<ul>
<li>
<span (click)="toggleSubMenu()">
List Item 1
</span>
<ul [@subMenuToggle]="subMenuState" class="sub-menu">
<li><a href="#">New</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">Remove</a></li>
</ul>
</li>
<li>
<span (click)="toggleSubMenu()">
List Item 2
</span>
<ul [@subMenuToggle]="subMenuState" class="sub-menu">
<li><a href="#">New</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">Remove</a></li>
</ul>
</li>
</ul>
</nav>
私が展開するメインメニュー項目のいずれかに、その後(リスト項目1または2)の両方のサブメニューをクリックします。
私の現在のアニメーションのトリガーはこのようになります(私は、対応する子のサブメニューが展開したい):
export class NavSidebarComponent {
subMenuState: string = 'subMenuDeselected';
toggleSubMenu() {
this.subMenuState = (this.subMenuState === 'subMenuSelected' ? 'subMenuDeselected' : 'subMenuSelected');
}
}
は、次のとおりです。
trigger('subMenuToggle',[
state('subMenuSelected', style({opacity: '1', height: '*'})),
state('subMenuDeselected', style({opacity: '0', height: '0px', overflow: 'hidden'})),
transition('subMenuSelected <=> subMenuDeselected', [
animate('150ms ease-out')
])
])
とtoggleSubMenu()メソッドは、状態を変更しますtoggleSubMenu()メソッドを使用して、どのメニュー項目がクリックされたのか把握し、対応するサブメニューを展開するのに良い方法はありますか?または、それぞれの親メニュー項目ごとにトグルメソッドを個別に作成する必要がありますか?
ありがとうございます。
作業中のプランナーを提供してください。 –