メニュー項目があるディレクティブを作成しました。メニュー項目の中にはサブメニュー項目があります。ディレクティブは、メニュー項目をクリックするとそのサブメニューを開くように作られています。私の問題は、あるメニュー項目をクリックするとサブメニューが開き、他のメニュー項目をクリックするとそれも開くので、2つのサブメニューが開きます。
メニュー項目をクリックしたときに他のすべてのサブメニューを閉じ、クリックしたメニュー項目サブメニューのみを開くようにしたい。私はどうすればいいのですか?AngularJSサブメニューとng-show
私のhtmlコード:
<menu visible="leftVisible" alignment="left">
<menu-item hash="first" show="menu1">
Side Menu item
<ul ng-show="menu1">
<li>
<a>First submenu item</a>
</li>
<li>
<a>First submenu item</a>
</li>
</ul>
</menu-item>
<menu-item hash="second" show="menu2">
Side Menu item
<ul ng-show="menu2">
<li>
<a >Second submenu item</a>
</li>
<li>
<a >Second submenu item</a>
</li>
</ul>
</menu-item>
<menu-item hash="third">Side Menu item</menu-item>
そして、これが私の命令コードです:
menuItem.directive("menuItem", function() {
return {
restrict: "E",
template: "<div ng-click='toggle($event)' ng-transclude></div>",
transclude: true,
scope: {
hash: "@",
show: '=',
},
link: function($scope) {
$scope.toggle = function(e) {
$scope.show = !$scope.show;
}
}
}
});
だから私は、メニュー項目をクリックすると、他のサブメニューを閉じるために何をすべきでしょうか?あなたは、メニューディレクティブの内側に、それらのメニューアイテムをラップしているので
メニューディレクティブの表示方法は?プランナーは、あなたに有効なアイデアを提案できることが素晴らしいでしょう。 – elvin
@elvin plunkerを作りました - > https://plnkr.co/edit/lBWXqDMwFdNlHV59eM8e?p=preview –