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()将其转换为对象,因此它起了作用!:三个小时过去了,我的头撞了一下。那么,我如何在不制作主对象的情况下将字符串转换为对象呢?