gpt4 book ai didi

javascript - @index 在 Handlebars 上不起作用

转载 作者:行者123 更新时间:2023-12-02 16:19:59 27 4
gpt4 key购买 nike

我尝试在 Handlebars 中使用@index,如下所示:

<script id="some-template" type="text/x-handlebars-template">
<form class = "pod" action="#" method="post">

<table>
<thead>
<th>Name</th>
<th>shipment</th>
<th>Button</th>
</thead>
<tbody>
{{#each objects}}
<tr>
<td>{{name}}</td>
<td> <input type="text" id="Shipment" name={{join 'Shipment' name}} /> </td>
<td> <input type="submit" name="actionButton" value = "update" > </td>

{{#if @index == 2 }}
<td>
<a href ="http://www.datatables.net/examples/api/select_single_row.html{{name}}"> {{name}} </a>
</td>

<td> </td>
{{/if}}

{{/each}}
</tbody>
</table>
</form>
</script>

但是我的 if 条件似乎不起作用。谁能告诉我我做错了什么?

最佳答案

不幸的是,如果没有自定义助手,您就无法在 Handlebars 中进行比较。

我不记得在哪里找到这个函数,但我有一个在节点/表达脚本中使用的副本,用于根据条件设置类:

app.js

var hbs = require('hbs');

hbs.registerHelper('ifCond', function (v1, operator, v2, options) {
switch (operator) {
case '==':
return (v1 == v2) ? options.fn(this) : options.inverse(this);
case '===':
return (v1 === v2) ? options.fn(this) : options.inverse(this);
case '<':
return (v1 < v2) ? options.fn(this) : options.inverse(this);
case '<=':
return (v1 <= v2) ? options.fn(this) : options.inverse(this);
case '>':
return (v1 > v2) ? options.fn(this) : options.inverse(this);
case '>=':
return (v1 >= v2) ? options.fn(this) : options.inverse(this);
case '&&':
return (v1 && v2) ? options.fn(this) : options.inverse(this);
case '||':
return (v1 || v2) ? options.fn(this) : options.inverse(this);
default:
return options.inverse(this);
}
});

hbs 模板

<div class="{{#ifCond this.order.pushed '==' 'true'}}text-green{{/ifCond}}">Order Status - {{this.order.pushedMessage}}</div>

关于javascript - @index 在 Handlebars 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27787914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com