2016-12-04 17 views
-1

我似乎無法使其工作。當我點擊菜單圖標時,菜單出來ok 並且當我再次點擊時它關閉。 但我如何切換當我點擊和菜單本身內的網址? 我試着給每個li添加一個類,並且在函數上添加了clas,我嘗試了一下很多東西。也許它是因爲我在李的角度?toggleclass從完全出的菜單內

<div class="icomMenu"></div> 
<navbar class=""> 
<nav class="nav"> 
    <ul> 
     <li><a ui-sref="index" ui-sref-active="active">Home</a></li> 
     <li><a ui-sref="About" ui-sref-active="active">About</a></li> 
     <li><a ui-sref="Contact" ui-sref-active="active">Contact</a></li> 
     <li><a ui-sref="Nested" ui-sref-active="active">Nested</a></li> 
    </ul> 
</nav> 
</navbar> 

$(document).ready(function() { 
    $(".icomMenu").click(function() { 
     $("navbar").toggleClass("NavOut"); 
    }); 
}); 

enter image description here

謝謝。

+1

[Bootstrap close responsive menu on click]](http://stackoverflow.com/questions/14203279/bootstrap-close-responsive-on-click) – Michelangelo

+0

謝謝米開朗琪羅。 「導航中的所有元素的綁定點擊事件崩潰菜單」做了訣竅。改變我的高級嵌套stateProvider只是狀態是矯枉過正的一些綁定解決。 – l3ny

回答

0

因爲我看到你使用角度,我會建議不要使用jQuery,而是使用組件/視圖控制器來處理這個問題。例如,您可以添加ng-class="{'NavOut': vm.menuVisible}"navbar HTML元素,而不是對li元素使用ui-sref可以使用ng-click="vm.onMenuItemClick("About")"然後控制器,你可以注入$state和創建方法onMenuItemClick(link),將設置this.menuVisible = false並轉到另一條路線與this.$state.go(link)

編輯: 模板: <div class="icomMenu"></div> <navbar ng-class="{'NavOut: vm.menuVisible}"> <nav class="nav"> <ul> <li><a ng-click="vm.onMenuClick('Home')" ui-sref-active="active">Home</a></li> </ul> </nav> </navbar>

控制器:

constructor($state) { 
    this.$state = $state; 
} 

this.onMenuClick(link) { 
    this.$state.go(link); 
    this.menuVisible = false; 
} 

類似的東西,我希望你的想法。導航欄似乎是創建組件的理想候選者,然後使用它的控制器來處理上述邏輯。

+0

Maksym,我試圖搞亂角度和我使用$ stateProvider,我認爲它與$狀態相同的方法,但你把太多的信息在這裏,並不清楚給我。無論如何,它不是你而是繁瑣的謝謝。 – l3ny

+0

@ l3ny更新了答案,希望你能理解它:) –