小胡子部分值被覆盖
Mustache section values are overridden
如何得到这个输出:
<h1>Colors</h1>
<li><strong>red</strong></li>
<li><a href="#Green">green</a></li>
<li><a href="#Blue">blue</a></li>
来自这个模板:
<h1>{{header}}</h1>
{{#bug}}
{{/bug}}
{{#items}}
{{#first}}
<li><strong>{{name}}</strong></li>
{{/first}}
{{#link}}
<li><a href="{{url}}">{{name}}</a></li>
{{/link}}
{{/items}}
{{#empty}}
<p>The list is empty.</p>
{{/empty}}
这个数据:
{
"header": "Colors",
"first": true,
"items": [
{"name": "red", "first": true, "url": "#Red"},
{"name": "green", "link": true, "url": "#Green"},
{"name": "blue", "link": true, "url": "#Blue"}
],
"empty": false
}
这样第一个字段就不会被覆盖。
目前我得到这个输出:
<h1>Colors</h1>
<li><strong>red</strong></li>
<li><strong>green</strong></li>
<li><a href="#Green">green</a></li>
<li><strong>blue</strong></li>
<li><a href="#Blue">blue</a></li>
我正在测试 here。
first
键在两个级别定义:项目级别和根级别。
当它没有在项目级别定义时,Mustache 引擎会深入挖掘,并使用在根级别定义的那个。这称为 Mustache 上下文堆栈,您刚刚学到了它。
现在答案很简单,不是吗?为了防止 Mustache 引擎挖掘上下文堆栈并在根级别查找 first
,确保 first
在项目级别定义,对于 all 项。将除第一个以外的所有项目设置为 false
。
如何得到这个输出:
<h1>Colors</h1>
<li><strong>red</strong></li>
<li><a href="#Green">green</a></li>
<li><a href="#Blue">blue</a></li>
来自这个模板:
<h1>{{header}}</h1>
{{#bug}}
{{/bug}}
{{#items}}
{{#first}}
<li><strong>{{name}}</strong></li>
{{/first}}
{{#link}}
<li><a href="{{url}}">{{name}}</a></li>
{{/link}}
{{/items}}
{{#empty}}
<p>The list is empty.</p>
{{/empty}}
这个数据:
{
"header": "Colors",
"first": true,
"items": [
{"name": "red", "first": true, "url": "#Red"},
{"name": "green", "link": true, "url": "#Green"},
{"name": "blue", "link": true, "url": "#Blue"}
],
"empty": false
}
这样第一个字段就不会被覆盖。
目前我得到这个输出:
<h1>Colors</h1>
<li><strong>red</strong></li>
<li><strong>green</strong></li>
<li><a href="#Green">green</a></li>
<li><strong>blue</strong></li>
<li><a href="#Blue">blue</a></li>
我正在测试 here。
first
键在两个级别定义:项目级别和根级别。
当它没有在项目级别定义时,Mustache 引擎会深入挖掘,并使用在根级别定义的那个。这称为 Mustache 上下文堆栈,您刚刚学到了它。
现在答案很简单,不是吗?为了防止 Mustache 引擎挖掘上下文堆栈并在根级别查找 first
,确保 first
在项目级别定义,对于 all 项。将除第一个以外的所有项目设置为 false
。