问题描述
|
我有这样的菜单:
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
是否可以通过标准方法实现它,还是应该创建新的助手?
解决方法
{get | set} RenderParents()获取/设置一个标志,该标志指定仅在渲染容器的活动分支时是否应渲染父对象。如果设置为FALSE,则仅显示最深的活动菜单。
http://framework.zend.com/manual/zh/zend.view.helpers.html
, 使用导航视图帮助器的标准方法是不可能的,这是不幸的,因为这是常见的情况。
但是,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隐藏非活动分支的问题。
但是您可能希望限制标记,因此必须制作自定义渲染器。