1

所以我有一个 listView 小部件,它显示文本列表

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>

如何在<li>下面添加 html 元素:

<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属性(而不是在其中创建)

4

2 回答 2

5

为了达到您的目标,您需要将encodeLabels属性设置为false请参阅)。像这样的代码(它是工作代码):

 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'])],
                ]
            ]);
于 2015-04-16T09:29:03.217 回答
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],
           ]
        ]);
于 2015-04-16T09:17:22.943 回答