从数组输出键
Output key from array?
如何输出下面的人名?马丁和塔比瑟?
people:
- martin:
job: Developer
skills:
- python
- perl
- pascal
- tabitha:
job: Developer
skills:
- lisp
- fortran
- erlang
这里是循环:
{{#each people}}
{{ this }}
{{/each}}
我找到了答案:
{{#each people}}
{{@key}}: {{this}}
{{/each}}
您可以创建一个块助手list
来迭代people
,并使用当前的index
作为私有变量来获取对象中的第一个关键字名称:Object.keys(context[i])[0]
。
var people = [{"martin": {"job": "Developer","skills": ["python","perl","pascal"]}}, {"tabitha": {"job": "Developer","skills": ["lisp","fortran","erlang"]}}];
// Register list helper
Handlebars.registerHelper('list', function (context, options) {
var out = '<ul>',
data;
if (options.data) {
data = Handlebars.createFrame(options.data);
}
for (var i = 0, l = context.length; i < l; i++) {
if (data) {
data.index = Object.keys(context[i])[0];
}
out += '<li>' + options.fn(context[i], {
data: data
}) + '</li>';
}
out += '</ul>';
return out;
});
// The main template
var main = Handlebars.compile($('#main').html());
// Register the list partial that 'main' uses
Handlebars.registerPartial('list', $('#list').html());
// Render the list
$('#output').html(main({
people: people
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.min.js"></script>
<script id="list" type="x-handlebars-template">
{{#list people}}
{{@index}}
{{/list}}
</script>
<script id="main" type="x-handlebars-template">
{{> list}}
</script>
<div id="output"></div>
注意:我已经将yaml转换为代码示例中的数组。
相关文章:
- AngularJS:在ng-reeat中从php输出数组(带键)
- 输出数组变量javascript
- .each() 函数只输出数组中的最后一个结果
- 对象的输出数组 javascript
- 以字母顺序输出数组
- PHP MySQL 输出数组与 JavaScript json_encode不产生输出
- 如何将特定的Java脚本对象传递给PHP,而不输出“数组”
- 如何在不向输出数组获取空值的情况下拆分字符串
- 使用for循环输出数组
- javascript函数中奇怪的控制台输出数组和array.pop()
- 如何通过输出数组每行的一个属性来运行htmlenties()
- 输出数组的索引
- 拆分运算符上的数学表达式,并将运算符包含在输出数组中
- 如何使用JavaScript输出数组中出现的次数
- 输出数组的值
- 如何在html表中输出数组的内容,同时使用jQuery
- 输出数组中每个元素右边最大的元素
- 如何在Javascript中输出数组中30个不同数字中的7个数字的所有可能组合?
- 用JS输出数组数据
- 向Json对象添加数组将输出数组数组,而不是一个值数组(使用Jquery)