2016-05-04 13 views
5

ho Nav con gli oggetti:Yii2 Nav widget di: elemento attivo

[ 
    'label' => 'All', 
    'url' => ['project/index'], 
], 
[ 
    'label' => 'Done', 
    'url' => ['project/index', 'assigned' => 'done'], 
], 

Ma entrambi hanno una classe active quando vado a progetto/index & assegnato = fatto. Come posso forzare ad allegare questa classe solo se l'articolo url è strettamente uguale al valore $route?

widget di

risposta

1

Nav farà un elemento attivo quando il suo percorso e parametri corrispondono $route (se non impostato, si utilizzerà il percorso della richiesta corrente) e $params (se non impostato, userà $ _GET).

Il tuo primo elemento sarà sempre attivo se il percorso è project/index (dai un'occhiata a here).

Si dovrebbe provare questo per esempio:

[ 
    'label' => 'All', 
    'url' => ['project/index', 'assigned' => 'not-done'], 
], 
[ 
    'label' => 'Done', 
    'url' => ['project/index', 'assigned' => 'done'], 
], 

Leggi di più riguardo how Nav widget set an item active or not.

+0

Grazie per i collegamenti. Sono utili – Dmytro

0
$actionId = $this->context->action->id; // the id of the actual action 

$items = [ 
    ['label' => 'All', 'active' => $actionId === 'index', 
     'url' => ['/project/index'], 
    ['label' => 'Done', 'active' => $actionId === 'index' 
     && \Yii::$app->request->get('assigned') === 'done', 
     'url' => ['/project/index', 'assigned' => 'done']] 
]; 
Problemi correlati