我的数组是:
[ { status: failed }, { status: passed } ]
我的Handlebars.js模板的if ... else条件是:
<td><a class="{{#each status}} {{#if failed}} fail {{else}} pass {{/if}} {{/each}}"></a></td>
以上情况无效。任何帮助将不胜感激。
答案 0 :(得分:0)
这里有很多事情要发生。首先,数组中的failed
和passed
是变量。他们是布尔,字符串还是其他?无论哪种方式,这些变量的值都会传递到您的模板,而不是它们的名称,因此{{#if failed}}
无法正常工作,因为它正在查找名称为“failed”且不存在的变量。此外,数组中的每个对象都具有状态的键,但{{#each status}}
遍历名称为status的数组,因此也存在不匹配。
最后,我认为你的逻辑可能是错误的 - 如果这有效,它将有这个输出:
<td><a class="fail pass"></a></td>
因为你的循环在一个<a>
元素内。我猜你想要每个状态都有一个单独的表格单元格。如果这是正确的,你需要这样的东西:
{{#each status}}<td><a class="{{#if failed}} fail {{else}} pass {{/if}}"></a></td>{{/each}}
具有如下数据结构:
{status: [{failed: true}, {failed: false}]}
就像在这个jsfiddle:http://jsfiddle.net/carpeliam/5fgr10gf/。