带参数的代码生成无法按预期工作

时间:2014-11-06 11:36:06

标签: javascript jquery mustache handlebars.js

我创建的程序使用把手在HTML文件中生成一些内容,目前内容是硬编码的,现在我想发送一些参数,当我把传递的数据从模型如下

that.model = {
func: "Jhon"

};

这是相关的车把

user.test( {{func}}, function( ) 
{

});

生成的HTML文件O​​K,我收到了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次......如何 我用车把1.3 或者还有其他方法可以创建循环。

1 个答案:

答案 0 :(得分:3)

很难说明代码中的错误究竟在哪里,而不会在页面上看到错误。

但这是我尝试实施你的任务:

以下是把手模板:

<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

看到它的实际效果