Handlebars.js自定义帮助程序来计算嵌套元素
Handlebars.js custom helper to count nested elements
我想制作一个自定义帮助程序,根据答案的数量给{{count}}
一个递增的数字。我在获取正确的方程式和构建助手时遇到了问题。我曾多次尝试使用父{{@index}}
和嵌套{{@index}}
的值,但都没有成功。
这样做的目的是在每个问题下呈现一个表格,并用单选按钮选择每个答案。我需要input
标签上的ID
属性和label
标签上的for
属性上的各个ID都相同。Thx。
注意,其他属性(name
、value
等)已经正确编程,所以我在这个例子中给出了thm硬值。
{{#questions}}
<div class="question-{{@index}}">
<form>
{{#each answers}}
<div>
<input type="radio" name="radios[0]" id="radios-{{count}}" value="1">
<label for="radios-{{count}}">Answer 1</label>
</div>
{{/each}}
<form>
</div>
{{/questions}}
Desired output in plain text class names:
div.question-0
div
input#radios-0
label[for=radios-0]
div
input#radios-1
label[for=radios-1]
div.question-1
div
input#radios-2
label[for=radios-2]
div
input#radios-3
label[for=radios-3]
div
input#radios-4
label[for=radios-4]
div.question-2
div
input#radios-5
label[for=radios-5]
div
input#radios-6
label[for=radios-6]
使用registerHelper
方法添加单个增量计数器
<script type="text/template" id="template">
{{#each questions}}
<div class="question-{{@index}}">
{{#each answers}}
<div class="answerswer-{{count}}"></div>
{{/each}}
</article>
{{/each}}
</script>
<script type="text/javascript">
var inputdata = {
questions: [
{ answers: [2,3,4,5] },
{ answers: [1, 2,3,4,5] }
]
};
var Counter = 1;
Handlebars.registerHelper('count', function() {
return Counter ++;
});
var template = Handlebars.compile($("#template").html());
$("body").html(template(inputdata));
</script>
DEMO
我的解决方案:
{{#questions}}
{{questionIndex @index}}
<div class="question-{{@index}}">
<form>
{{#each answers}}
<div>
<input type="radio" name="radios[{{../questionIndex}}]" id="radios-{{../questionIndex}}{{@index}}" value="{{value}}">
<label for="radios-{{../questionIndex}}{{@index}}">{{answer}}</label>
</div>
{{/each}}
<form>
</div>
{{/questions}}
Handlebars.registerHelper('questionIndex', function(value) {
this.questionIndex = Number(value);
});
{{../questionIndex}}{{@index}}
将导致:00、01、10、11、20、21等等…
相关文章:
- 用嵌套函数和默认函数定义函数
- 计算表单中的嵌套字段集
- 在嵌套在 for 循环 (JavaScript/jQuery) 中的 switch 语句中计算 jQuery 数组的元素
- 如何计算嵌套 JSON 的长度
- 嵌套函数中变量的值在定义时计算,而不是在调用时计算
- 多个嵌套if语句未进行计算
- 以角度计算多个嵌套循环的总和
- Handlebars.js自定义帮助程序来计算嵌套元素
- 使用(ES6)计算的属性名称更新嵌套对象
- AngularJS我正在尝试计算嵌套ng重复中包含的许多输入(ng模型)的结果
- Ember.js计算嵌套关系的属性
- 困惑,循环遍历嵌套对象和做特定的计算
- 计算嵌套js对象中项目的长度
- 如何在单击事件时计算嵌套元素到其父元素的位置
- 如何使用angular.forEach计算嵌套对象的值
- Ember计算属性绑定到深度嵌套属性时不会触发
- 在Ember.js中计算嵌套对象的属性
- for循环-计算嵌套对象数组的平均值-JavaScript
- AngularJS在数据更改时重新计算“嵌套”函数
- 如何使用Underscore JS计算嵌套JSON中的总和