我正在使用node.js构建应用程序,并使用把手进行服务器和客户端模板化。但是,我在迭代一个对象时遇到了麻烦。这是我的代码:
我的.js文件:
$(function () {
var theTemplateScript = $("#update_address_distributor_template").html();
context.city = 'london';
var theTemplate = Handlebars.compile(theTemplateScript);
var theCompiledHtml = theTemplate(context);
$('.update_address_distributor_template_placeholder').html(theCompiledHtml);
});
我的html文件:
<script id="update_address_distributor_template" type="text/x-handlebars-template">
<form class="form-horizontal" role="form" id="update_distributor_form">
\{{city}} //correctly prints out london
\{{address_distributors.length}} //returns 2, so i know the object exists
{{#each address_distributors}}
\{{name}} //does not print anything
{{/each}}
</form>
</script>
我的上下文对象:
{
address_distributors: {
[
{
name: 'nike',
id: '1'
},
{
name: 'yokohama',
id: '4'
}
]
},
city: 'london'
}
我的{{#each ../address_distributors}} ... {{/each}}
没有打印任何内容。我知道我的addres_distributors
对象退出,因为\\{{address_distributors.length}}
在html页面上打印2。另外,为了测试我的把手模板是否正确设置,我设置context.city = 'london';
以查看它是否会打印出来,这样做。所以我知道这个问题与对象有关...
有人可以帮忙吗?
提前致谢!
答案 0 :(得分:1)
您的数据存在问题,我已尝试使用以下数据:
{ "address_distributors": [ { name: 'nike', id: '1' }, { name: 'yokohama', id: '4' } ], city: 'london' }
我得到以下结果:
london //correctly prints out london
2 //returns 2, so i know the object exists
nike //does not print anything
yokohama //does not print anything
这是我测试的一个小提琴:https://jsfiddle.net/ChristopheThiry/30xh7epu/
答案 1 :(得分:0)
name
变量不存在。尝试
{{this.name}}
此外,您可以尝试
{{#each address_distributors}}
Anything // Just to see if your loop works.
{{/each}}