我有以下部分内容:
<ul class="navbar">
{#nav_links}
<li class="navbar__link {?sub_menu}more{/sub_menu}">
<a href="/{link}">{label}</a>
{?sub_menu}
<ul class="navbar__link--sub">
{#sub_menu}
<li class="navbar__link--sub {?sub_menu}more{/sub_menu}">
<a href="/{link}">{label}</a>
</li>
{/sub_menu}
</ul>
{/sub_menu}
</li>
{/nav_links}
</ul>
使用JSON:
{
title: "page title",
nav_links: [
{
link: "home",
label:"Home"
},
{
link: "products",
label:"Products",
sub_menu: [
{link: "link1", label: "Product A"},
{link: "link2", label: "Product B"},
{link: "link3", label: "Products C", sub_menu: [
{link: "link3-1", label: "Sub Product A"},
{link: "link3-2", label: "Sub Product B"}
]},
]
}
]
}
我遇到的问题是嵌套的sub_menu属性,所有子菜单项都会添加more
类,无论它们是否具有嵌套的sub_menu
。我认为上下文会像link
和label
一样发生变化,但它似乎仍然像第一个条件和部分标记那样引用初始sub_menu
。我已经在JSON和部分标记中重命名了嵌套的sub_menu
属性,然后上下文正常工作。有没有办法仍然使用sub_menu
属性名称?或者引用子属性,例如sub_menu.sub_menu
?
答案 0 :(得分:1)
默认情况下,如果Dust在某个级别找不到某个键,它将向上移动。但是,您希望仅显式检查上下文的当前级别。要在Dust中执行此操作,请在键前加一个点:
<li class="navbar__link--sub {?.sub_menu}more{/sub_menu}">