1

我有这样的菜单:

item1
 - item1.1
    - item 1.1.1
    - item 1.1.2
    - item 1.1.3
 - item1.2
    - item 1.2.1
    - item 1.2.2
item2
 - item2.1
 - item2.2

我设置了`setOnlyActiveBranch(true); 如果我选择 item.1.1.1 或 item.1.1 我会得到这个:

item1
 - item1.1
    - item 1.1.1
    - item 1.1.2
    - item 1.1.3

同时,如果我按 item1 我得到了这个:

item1
 - item1.1
 - item1.2

如果当前节点处于活动状态,我不想隐藏其他根节点。那么如何以这种方式显示菜单(如果我选择 item1.1. 例如)?:

item1
 - item1.1
    - item 1.1.1
    - item 1.1.2
    - item 1.1.3
 - item1.2
item2

是否可以通过标准方法实现它,或者我应该创建新的助手?

4

2 回答 2

0

{get|set}RenderParents() 获取/设置一个标志,指定在仅渲染容器的活动分支时是否应渲染父级。如果设置为 FALSE,则只会呈现最深的活动菜单。

http://framework.zend.com/manual/en/zend.view.helpers.html

于 2011-06-15T06:12:53.737 回答
0

这对于导航视图助手的标准方法是不可能的,这是不幸的,因为这是一种常见的情况。

然而,ZF 开发人员应该牢记一些案例问题,这可能就是它没有实施的原因。这种情况是如果您想将非活动分支显示到第二级。

Item 1 - active
  Item 1.1 - active
    Item 1.1.1 - active
    Item 1.1.2
  Item 1.2
Item 2
  Item 2.1
  Item 2.2

您可能还希望有其他情况,仅显示主要项目,仅显示活动分支。

Item 1 - active
  Item 1.1 - active
    Item 1.1.1 - active
    Item 1.1.2
Item 2

我通过渲染整个菜单并用 CSS 隐藏非活动分支来解决这个问题。

但是您可能希望限制您的标记,因此您必须制作自定义渲染器。

于 2011-06-15T12:18:06.030 回答