zf2 - 如何为导航视图助手呈现的li元素添加类名?

时间:2014-03-30 15:39:25

标签: navigation zend-framework2

我使用zf2中的导航视图助手渲染菜单。我使用配置来指定我的菜单项,我不想使用部分。当我将“class”添加到配置中的导航数组时,它将类添加到< a>嵌入在<内的元素li>元件。有谁知道如何指定特定<的类? li> elemenmt?

我的配置看起来像这样:

"navigation" => array(
    "default" => array(
      "main" => array(
          'label' => 'Site',
          'route' => 'site',
          'class' => 'my-html-class-name',
          'pages' => array(
              'label' => 'Articles',
              'route' => 'articles',
              'pages' => array(
                  array(
                      'label'=> 'All Articles',
                      'route'=> 'all-articles'),
                ),           
            ),
        ),
    ),
),

呈现:

<ul>
    <li>
        <a href="/site-map" class="my-html-class-name">Site</a>
        <ul>
            <li>
                <a href="/articles">Articles</a>
            </li>
        </ul>
    </li>
</ul>

我想将类名“my-html-class-name”添加到父级&lt; li>元素而不是&lt; a&gt;渲染菜单时标记。我怎样才能做到这一点?我在zf2网站上发表了评论,但我没有收到回复,ZF2 custom attributes in navigation不是我想要的解决方案。

我是否必须创建自定义视图助手才能实现此目的?

1 个答案:

答案 0 :(得分:3)

只需在导航视图助手中将addClassToListItem的标记切换为true

<?php
echo $this->navigation('navigation')
    ->setAddClassToListItem(true)
    ->render();
?>

然后,为已添加到<a>元素的页面添加的类也将显示在父<li>元素中。