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

これはナビゲーション ビュー ヘルパーの標準メソッドでは不可能です。残念なことに、これは一般的なケースであるためです。

ただし、ZF 開発者が留意すべきいくつかのケースの問題があり、おそらくそれが実装されていない理由です。そのようなケースは、非アクティブなブランチを第 2 レベルに表示したい場合です。

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 に答える
0

{get|set}RenderParents() は、コンテナのアクティブ ブランチのみをレンダリングするときに親をレンダリングするかどうかを指定するフラグを取得または設定します。FALSE に設定すると、最も深いアクティブ メニューのみがレンダリングされます。

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

于 2011-06-15T06:12:53.737 に答える