我有一个#if条件,我测试的是假的,但无论如何它都会进入。这是Handlebar脚本:
{{#each this.properties}}
<span class="values">
{{#if is-object-property}}
{{#each values}}
<span class="value" style="color:blue;">{{this}}</span>
{{/each}}
{{else}}
{{#each values}}
<span class="value">{{this}}</span>
{{/each}}
{{/if}}
</span>
{{/each}}
问题是,我所显示的只是蓝色而我的对象看起来像是:
properties: Array[3]
0: Object
code: "pays"
reliability: 100
values: Array[1]
1: Object
code: "pnb"
reliability: 100
values: Array[1]
2: Object
code: "source"
is-object-property: "true"
reliability: 100
values: Array[2]
正如您所看到的,除对象2外,对象0和1的undefined
结果应为is-object-property
。他们确实有这样的结果,这就是为什么我不明白为什么我全都是蓝色的。
我认为它已进入条件状态,但是它在把手网站上写道:“你可以使用if帮助器有条件地渲染一个块。如果它的参数返回false
,undefined
,{ {1}},null
或""
(“虚假”值),Handlebars不会渲染该块。“
(参见http://handlebarsjs.com/上的“if block helper”)
答案 0 :(得分:0)
这解决了这个问题:
<span class="values">
{{#each values}}
{{#if ../is-object-property}}
<span class="value" style="color:blue;">{{this}}</span>
{{else}}
<span class="value">{{this}}</span>
{{/if}}
{{/each}}
</span>