我想知道是否有任何方法可以在HTML中添加双重修饰的{{var}}嵌入。
例如:
我在这里有.hbs代码:
{{#each tables.books.data}}
<tr>
<td>...</td>
<td>...</td>
</tr>
{{/each}}
还有我的.js代码:
$(tableID+">tbody>tr").attr("tabindex", "{{@key}}");
我希望它在网络上看起来像这样:
<tr tabindex="1">
<td>...</td>
<td>...</td>
</tr>
<tr tabindex="2">
<td>...</td>
<td>...</td>
</tr>
<tr tabindex="3">
<td>...</td>
<td>...</td>
</tr>
...
但是目前我正在体验:
<tr tabindex="{{@key}}">
<td>...</td>
<td>...</td>
</tr>
<tr tabindex="{{@key}}">
<td>...</td>
<td>...</td>
</tr>
<tr tabindex="{{@key}}">
<td>...</td>
<td>...</td>
</tr>
...
是否有其他方法或函数可以呈现双重填充的{{var}}嵌入?
回顾一下,我的目标是在页面加载时在attribute={{@key}}
中添加<tr>
。
我也不打算安装其他软件包,但是如果那是唯一的方法,那就可以了。
答案 0 :(得分:-2)
Handlebars是一种模板语言,这意味着Javascript无法与其完全交互,因为Handlebars是在服务器端呈现的,而Javascript是在客户端执行的-模板(或API)实际上是两者之间的通信媒介他们俩。此外,JavaScript还将"{{@key}}"
读为字符串文字,而不是您正在考虑的handlebars变量。如果您希望把手将密钥打印到模板中,则必须将其添加到hbs模板本身中:
<tr tabindex="{{@key}}">
如果您绝对必须在Javascript中使用它,则可以通过数据属性之类的方式传递它:
// in .hbs file
<tr data-tabindex="{{@key}}">
// in js
tr = $('tr')[0] // grab a <tr> element
tr.data('tabindex') // should be whatever value was in @key