Javascript 小胡子:指定标签只能从子项中提取,而不能从父项中提取
我有一些数据,其中子项与父项具有相同的属性。当我为子项中的那些属性使用标记时,Mustach会感到困惑,有时会从父项中提取 以下是数据:Javascript 小胡子:指定标签只能从子项中提取,而不能从父项中提取,javascript,mustache,Javascript,Mustache,我有一些数据,其中子项与父项具有相同的属性。当我为子项中的那些属性使用标记时,Mustach会感到困惑,有时会从父项中提取 以下是数据: { "menus":[ { "title":"Food", "slug":"Food", "sections":[ { "title":"Soup & Salad", "type":"section", "desc":"Dress
{
"menus":[
{
"title":"Food",
"slug":"Food",
"sections":[
{
"title":"Soup & Salad",
"type":"section",
"desc":"Dressing Choices: Hidden Valley Ranch®, Creamy Bleu Cheese, ...",
"items":[
{
"title":"Sesame Ginger Chicken & Quinoa Salad",
"name":"sesame-ginger-chicken--quinoa-salad",
"type":"item",
"desc":"fresh spring and baby spinach mix ..."
},
{
"title":"Add to Any Salad",
"name":"add-to-any-salad",
"type":"item",
"desc":null
}
]
}
]
}
]
};
和胡子模板:
{{#menus}}
<div id="menu_{{slug}}" class="Menu-Container">
<h1 class="Section-Title">{{{title}}}</h1>
{{#desc}}<p class="menu_desc desc">{{{desc}}}</p>{{/desc}}
<div class="Menu Tabs">
{{#sections}}
<section id="section_{{id}}" class="Menu-Section">
<h2 class="title">{{{title}}}</h2>
{{#desc}}<p class="section_desc">{{{desc}}}</p>{{/desc}}
{{#items}}
<dl class="menuItem">
<dt class="item_title">{{{title}}}</dt>
{{#desc}}<dd class="item_description">{{{desc}}}</dd>{{/desc}}
</dl>
{{/items}}
</section>
{{/sections}}
</div>
</div>
{{/menus}}
{{{#菜单}
{{{title}}}
{{{{desc}}{{{{desc}}}
{{/desc}
{{{#项目}
{{{title}}}
{{{{desc}}{{{desc}}{{/desc}}
{{/items}
{{/sections}
{{/菜单}
{{/desc}
{{#部分}
{{{title}}}
{{{{desc}}
以下是输出:
<div id="menu_Food" class="Menu-Container">
<h1 class="Section-Title">Food</h1>
<section id="section_s5005429" class="Menu-Section">
<h2 class="title">Soup & Salad</h2>
<p class="section_desc">Dressing Choices: Hidden Valley Ranch®, Creamy
Bleu Cheese, ...</p>
<dl class="menuItem">
<dt class="item_title">Sesame Ginger Chicken & Quinoa Salad</dt>
<dd class="item_description">fresh spring and baby spinach mix ...</dd>
</dl>
<dl class="menuItem">
<dt class="item_title">Add to Any Salad</dt>
<dd class="item_description">Dressing Choices: Hidden Valley Ranch®,
Creamy Bleu Cheese, ...</dd>
</dl>
</section>
</div>
食物
汤及;沙拉
敷料选择:Hidden Valley Ranch®,奶油状
蓝奶酪
芝麻姜鸡;藜麦沙拉
新鲜的春天和小菠菜的混合。。。
把它加到沙拉里
着装选择:Hidden Valley Ranch®,
奶油蓝奶酪。。。
对于最后一项,“添加到任何沙拉”,将
desc
属性设置为null
,Mustache从父部分插入desc
。有没有办法指定Mustach只使用项
中的desc
属性,而不使用其父部分
?为什么要使用块{{#desc}?不只是{{{{{desc}}}工作吗?或者,如果您使用这些块,那么只要{{}}就可以了。另外,如果没有{{desc}}
,我不想让它添加
,因为没有{{desc}}
,所以块是空的。是的,{.}
有效,我只是习惯性地在那里使用了{{desc}
。我现在看到了问题,找不到解决办法。我甚至尝试了分部和重载。要修复它,您可以修改mustache文件,特别是“Context.prototype.lookup()”例程,以避免“Context=Context.parent;”部分。或者,您可以在将数据馈送到模板之前更改数据,以删除不明确的名称或插入冒烟枪,您可以使用这些冒烟枪触发空块行为。索引工作:,就像{items.length}这样的属性一样,您可以使用“.length”嗅出null vs”“我用一个非常简单的函数找到了解决问题的方法:。它确实取决于您的数据是否包含“:null”或“:null}”作为奇怪的字符串。它会向渲染时间添加一两毫秒,但会保留其他逻辑和代码,使用未修改的胡须功能,防止出现空胡须,是一个单线修补程序,并允许在需要时通过克隆数据进行更多修改,从而使修补程序不会向上游浮动。如果这是一种舒适地使用胡须时间的方法,那么额外的json.parse()时间将可以忽略不计。