gpt4 book ai didi

javascript - Handlebars.js - 如何在模板中使用 JS 中的变量?

转载 作者:行者123 更新时间:2023-12-01 05:36:37 29 4
gpt4 key购买 nike

我对 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));
};
};

结果有效,但单选按钮名称未定义。谁能告诉我如何使 radio 名称等于 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 帮助程序生成整个输入,并将 indexthis 作为参数。这样,您就不会在元素中间调用助手(具有巨大的助手语法)。

关于javascript - Handlebars.js - 如何在模板中使用 JS 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33613873/

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