我有一个类别节点(一个对象数组)。如果product
字段存在,我想打印一个列表项;如果category
字段存在,我想打印一个不同的列表项。
category.nodes = [
{
product: "1",
type: "product"
},
{
product: "2",
type: "product"
},
{
category: "categoryName",
type: "category"
}
]
我的胡子模板是:
<p>
{{#category.nodes}}
{{#product}}
<li>{{product}}</li>
{{/product}}
{{#category}}
<li>{{category}}</li>
{{/category}}
{{/category.nodes}}
</p>
{{#category.nodes}} ... {{/category.nodes}}
应将范围放入category.nodes section和
&#34;渲染文本块一次或多次,具体取决于当前上下文中键的值&#34;
文档在false values and empty lists上声明了以下内容:
当嵌套值与父值相同时,&#34;如果人员密钥不存在或存在并且其值为null,undefined,false,0或NaN,或者是空字符串或空列表,则不会呈现该块&# 34;
This jsFiddle会显示一个问题({{#category}}...{{/category}}
指的是全局category
,而不是category.nodes.category。)
我想知道是否有某种方法可以指定哪个category
被引用,因为这会给嵌套带来问题。
This jsfiddle是通过更改父级名称解决问题的方法,我想知道是否有某种方法可以指定引用哪个category
,而不是重命名变量。
当该部分没有{{#category}}...{{/category}}
时,问题是category
打印。
答案 0 :(得分:1)
此行为与the specification匹配。
从上到下遍历上下文堆栈,找到第一个上下文 这是a)包含名称作为键的哈希或b)响应的对象 到具有给定名称的方法
当{{#category}}
的成员中category.nodes
不匹配时,它会遍历堆栈并在根处找到category
(在此术语中位于堆栈的底部)。从我对规范的阅读中,没有办法辨别数据元素的级别。