Handlebar.js中的template()不接受参数

时间:2013-11-17 09:17:42

标签: javascript parameters handlebars.js

所以,这是代码:

$('li.list').on('click', function(){
    console.log(this.id); 
    var temp = template(library) ; 
    console.log(temp); 
    $('.infotemplate').append(temp);
});

当我记录this.id时,它给了我正确的ID,即库。但是当我将它传递给template()函数时,它不会解析我的对象库的细节。但是当我明确地将库作为function()中的参数传递时,它会提供正确的输出。 所以,我动态地想要这个,当用户点击该id时,与id相同名称的对象将在后面的主体中附加。

$('li.list').on('click', function(){
    console.log(this.id); 
    var temp = template(this.id) ; 
    console.log(temp);
    $('.infotemplate').append(temp);
});

我该如何解决这个问题?请帮忙..

1 个答案:

答案 0 :(得分:0)

不是为每个项创建变量,而是创建一个包含所有项的对象,并使用id从该变量访问它们。

您目前正在做的是传递字符串而不是带有该名称的变量。

var items = {
   library : {icon:'..', title:'...',..},
   cityhall: {..},
   ...
} 

并使用

$('li.list').on('click', function(){
    console.log(this.id); 
    var temp = template(items[this.id]) ; 
    console.log(temp);
    $('.infotemplate').append(temp);
});