2015-04-16 2 views
1

Так у меня есть виджет ListView, который отображает список текстаYii 2.0 Widget варианты элементов

echo Menu::widget([ 
        'options' => ['class'=>'nav navbar-nav side-nav'], 
        'items' => [ 
         ['label' =>'Dashboard', ], 
         ['label' => 'Products'], 
        ] 
       ]); 

Когда я открываю браузер, результат:

<ul class="nav navbar-nav side-nav"> 
    <li>Dashboard</li> 
    <li>Products</li> 
</ul> 

Как добавить HTML элемент внутри <li>, как показано ниже:

<ul class="nav navbar-nav side-nav"> 
    <li><i class='fap fap-dashboard'>Dashboard</i></li> 
    <li><b class='fap fap-product'>Products</b></li> 
</ul> 

с помощью виджета?

Я попытался поставить еще один элемент элемента рядом с ярлыком, но вместо этого он создал еще один <ul> элемент, и я также попытался использовать «варианты» рядом с ярлыком, и вместо того, чтобы изменить атрибут li (не создавая внутри него)

ответ

5

Для достижения цели вам, нужно настроить encodeLabels свойство false (see). Код, подобный этому (это код работы):

Menu::widget([ 
       'options' => ['class'=>'nav navbar-nav side-nav', 'format' => 'raw'], 
       'encodeLabels' => false, 
       'items' => [ 
        ['label' => Html::tag('i', 'Dashboard',['class' => 'fap fap-dashboard'])], 
        ['label' => Html::tag('b', 'Products',['class' => 'fap fap-product'])], 
       ] 
      ]); 
+0

Итак, свойство encodeLabels - это то, что я пропустил, по-видимому .. спасибо за ответ –

1

это может работы-

echo Menu::widget([ 
      'options' => ['class'=>'nav navbar-nav side-nav'], 
      'items' => [ 
       ['label' =>'<i class="fap fap-dashboard">Dashboard</i>',"encode"=>false, ], 
       ['label' =>'<b class="fap fap-product">Products</b>',"encode"=>false], 
      ] 
     ]); 
+0

Неправильная практика использования html в ярлыке. Используйте класс 'Html' для генерации html-кода. –

Смежные вопросы