我创建了使用handlebars 在 HTML 文件中生成一些内容的程序,目前内容是硬编码的,现在我想发送一些参数,当我从模型中传递数据时喜欢关注
that.model = {
func: "Jhon"
};
这是相关的 Handlebars
user.test( {{func}}, function( )
{
});
生成的 HTML 文件正常,我得到了 HTML 文件
...
user.test( jhon, function( )
{
});
现在我想根据不同用户名的数组生成多次,我应该怎么做? 我创建了以下数组
var userList = {
user: []
};
for (var i = 0; i < selectedUser.length; i++) {
userList.user.push({
name: selectedUser[i].getText()
});
}
这是模板
{{#each userList.user}}
user.test( {{name}}, function( )
{
});
{{/each}}
在生成过程之后,我得到了我所期望的...... 首先它不复制条目并放入 [object Object]
user.test( [object Object],[object Object], function( )
{
});
假设我有多个用户,比如 jhon、mike、peter
我希望生成的 HTML 文件生成后如下所示: 例子 user.test( jhon, function( ) {
});
user.test( mike, function( )
{
});
user.test( peter, function( )
{
});
更新
我已经将我的对象更改为
for (var i = 0; i < selectedUser.length; i++) {
userList.user.push({
selectedUser[i].getText()
});
}
现在我得到了
user.test( jhon,mike,peter function( )
{
});
没有迭代,我想像示例中那样获取它 3 次...如何 我用 Handlebars 1.3 或者也许还有其他创建循环的方法。
最佳答案
如果不在页面上看到所有错误,很难说出代码中的确切错误位置。
但这是我尝试执行您的任务:
这是 Handlebars 模板:
<script id="template" type="text/x-handlebars-template">
{{#each user}}
user.test( {{name}}, function(){});
{{/each}}
</script>
我使用的 javascript 如下所示:
var userList = {
user: [{name : "Mike"},{name : "Adam"},{name : "John"}]
};
var source = $("#template").html();
var template = Handlebars.compile(source);
$("#output").html(template(userList));
给出下一个输出:
user.test( Mike, function(){});
user.test( Adam, function(){});
user.test( John, function(){});
您可以在这个 jsfiddle 看到它的实际效果
关于javascript - 带有参数的代码生成未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26778519/