Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Handlebar.js中的模板()不接受参数_Javascript_Parameters_Handlebars.js - Fatal编程技术网

Javascript Handlebar.js中的模板()不接受参数

Javascript Handlebar.js中的模板()不接受参数,javascript,parameters,handlebars.js,Javascript,Parameters,Handlebars.js,这就是代码: $('li.list').on('click', function(){ console.log(this.id); var temp = template(library) ; console.log(temp); $('.infotemplate').append(temp); }); 当我记录这个.id时,它给了我正确的id,即库。但当我将其传递到template()函数时,它不会解析对象库的细节。但是,当我在function()中将库

这就是代码:

$('li.list').on('click', function(){
    console.log(this.id); 
    var temp = template(library) ; 
    console.log(temp); 
    $('.infotemplate').append(temp);
});
当我记录这个.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);
});

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

不要为每个项目创建变量,而是使用所有项目创建一个对象,并使用
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);
});

您能说明如何在上面的代码中设置库变量吗?如果您添加html,它将是一个有用的javascript对象:var library={icon:'library',title:'Things to Learn',desc:'Lorem ipsum dolor'},它也是元素的id,当单击该元素时,应该将该对象加载到模板中。哦,我已经声明了var template=handlebar.compile($('#template').html()); 其中#模板是指车把模板代码。能否显示#模板html?谢谢!我刚刚使用eval()将其转换为对象,因此它起了作用!:三个小时过去了,我的头撞了一下。那么,我如何在不制作主对象的情况下将字符串转换为对象呢?