Handlebars.js-如何在模板中使用js中的变量
Handlebars.js - How to use variables from JS in the template?
我对Handlebars和模板还是个新手,我正在尝试根据JS中的一个变量分配输入名称。例如:
HTML:
<script id="radio-template" type="x-handlebars-template">
{{#each this}}
<input name='{{answerSet}}' type='radio' value='{{@index}}' >{{this}}<br>
{{/each}}
</script>
JS:
quiz(number) {
var quizName = "quiz" + number;
function createRadios() {
var radioScript = $("#radio-template").html();
var template = Handlebars.compile(radioScript);
Handlebars.registerHelper('answerSet', function() {
return quizName;
});
$("#question").append(template(allQuestions[counter].choices));
};
};
结果是有效的,除了单选按钮名称未定义。有人能告诉我如何使无线电名称等于quizName变量吗?有关更多详细信息,请参阅代码笔:http://codepen.io/Jake_Ratliff/pen/wKoKJX?editors=101
由于您已经创建了answerSet
作为助手,因此您需要将其称为模板中的一个:
<script id="radio-template" type="x-handlebars-template">
{{#each this}}
<input name='{{#answerSet}}{{/answerSet}}' type='radio' value='{{@index}}' >{{this}}<br>
{{/each}}
</script>
注意上面的#
和关闭answerSet
。
否则,Handlebars假设您正在当前this
上下文中查找名为answerSet
的属性;由于不存在,则返回undefined
。
为了让事情变得简单一点,我可能让您的answerSet
助手生成整个输入,并将index
和this
作为参数。这样,就不会在元素中间调用助手(使用巨大的助手语法)。
相关文章:
- 等待函数完成,然后将返回值分配给变量JS
- 节点中的变量.js JavaScript 不会改变
- 如何在 Node 中访问模块全局变量.js例如浏览器中的 window.variable
- 在角度中使用父范围变量.js
- 在重新声明变量 (JS) 时遇到了问题
- 在主干中使用全局变量.js .最佳实践
- 在节点中使用变量.js mysql-node 查询
- 如果变量 JS 太高,则启动/停止反转
- 变量 Js 在 PHP 代码中不起作用
- 无法使用车把正确在我的“模板”中显示变量.js
- 引导程序中的全局变量.js在 Firefox for Android 扩展中
- Webstorm 中的“未解析变量 JS”
- 变量JS的子字符串值
- 动态更新变量JS
- 不能用一个主变量访问单个变量[jS]
- 创建全局变量js
- 当不同的函数需要从数据库调用数据时,如何避免使用全局变量.(JS)
- 变量JS中的变量
- 本地存储变量js
- 为循环追加变量js