是否可以在银条菜单中获取儿童的孩子



我正在 SilverStripe 3.1 模板中组合一个 3 层导航菜单,并在我的模板中具有以下代码:

<% loop $Menu(1) %>
...
  <% loop $Children %>
...
    <% loop $Children %>
     <li><a href="$Link">$Model</a></li>
    <% end_loop %>
  <% end_loop %>
<% end_loop %>

但是,我没有从第三层获得我期望的输出。真的有可能得到孩子的孩子吗?如果没有,那我该怎么办?谢谢!

是的,可以循环遍历"孩子的子"循环。

你的代码对我来说是正确的。它应该正常工作。

以下是一些可能需要检查的问题。

确保每个级别的所有页面都ShowInMenus设置为 true。 $Children$Menu(1) 仅返回ShowInMenus设置为 true 的页面。此复选框可以在任何页面的"设置"选项卡中找到。否则,您也可以使用$AllChildren而不是$Children来获取隐藏页面。

确保站点树的页面深度为 3 层。要检查的明显事情。

$Model 不是内置页面变量。这必须是您设置的自定义变量。确保将其设置为页面,已填充值,并且可以在前端访问。

下面是一些可用于检查站点树输出的测试模板代码。这可能有助于调试问题:

<ul>
<% loop $Menu(1) %>
    <li>
        <a href="$Link">$Title - $Model</a>
        <% if $Children %>
        <ul>
        <% loop $Children %>
            <li>
                <a href="$Link">$Title - $Model</a>
                <% if $Children %>
                <ul>
                <% loop $Children %>
                    <li>
                        <a href="$Link">$Title - $Model</a>
                    </li>
                <% end_loop %>
                </ul>
                <% end_if %>
            </li>
        <% end_loop %>
        </ul>
        <% end_if %>
    </li>
<% end_loop %>
</ul>

相关内容

  • 没有找到相关文章

最新更新