2015-05-11 30 views
10

Używam motywu adminLTE dla bootstrap i używa klasy treeview-menu w celu obsługi podmenu.Podmenu widgetu navi yii2 klasy

<?=Nav::widget([ 
      'options' => ['class' => 'sidebar-menu treeview'], 
      'items' => [ 

       ['label' => 'Menu 1', 'url' => ['/a/index']], 
       ['label' => 'Menu 2', 'url' => ['/custom-perks/index']], 
       ['label' => 'Submenu', 'items' => [ 
        ['label' => 'Action', 'url' => '#'], 
        ['label' => 'Another action', 'url' => '#'], 
        ['label' => 'Something else here', 'url' => '#'], 
        ], 
       ], 
      ], 
     ]); 
     ?> 

Próbowałem za pomocą: ['label' => 'Submenu', 'options' => ['class' => 'treeview-menu'], 'items' =>..

co oczywiście nie działa.

Zauważyłem, że widżet Menu :: ma numer submenuTemplate, ale kiedy go użyłem przestał odbierać "aktywny".

Czy istnieje sposób, w jaki mogę zmienić sposób, w jaki wywołanie adminLTE jest stosowane do widoku drzewa (próbowałem zmienić je w app.js na rozwijane menu, ale to nie pomogło) lub ponownie przypisać podmenu UL klasy bez wchodzenia w kod dostawcy?

Linia 65: \ Yii \ bootstrap \ rozwijane - funkcji init()

Odpowiedz

21

Ok więc znalazłem obejść - Wykorzystanie widget menu zamiast i włączyć flagę activateParents:

<?=Menu::widget([ 
'options' => ['class' => 'sidebar-menu treeview'], 
'items' => [ 

    ['label' => 'Menu 1', 'url' => ['/a/index']], 
    ['label' => 'Menu 2', 'url' => ['/link2/index']], 
    ['label' => 'Submenu', 
     'url' => ['#'], 
     'template' => '<a href="{url}" >{label}<i class="fa fa-angle-left pull-right"></i></a>', 
     'items' => [ 
      ['label' => 'Action', 'url' => '#'], 
      ['label' => 'Another action', 'url' => '#'], 
      ['label' => 'Something else here', 'url' => '#'], 
     ], 
    ], 
], 
'submenuTemplate' => "\n<ul class='treeview-menu'>\n{items}\n</ul>\n", 
'encodeLabels' => false, //allows you to use html in labels 
'activateParents' => true, ]); ?> 

Mam nadzieję, że to pomoże także innym!

+2

Tak jak w notatce, potrzebujesz 'używać yii \ widgets \ Menu;' u góry pliku widoku, aby móc wywołać 'Menu'. – Gogol

+0

Bardzo dziękuję za to, że bardzo pomogłeś, szukałem wieków – Liam