Javascript 将对象作为参数传递给把手模板中的onclick方法
我有一个JSON,看起来像这样:Javascript 将对象作为参数传递给把手模板中的onclick方法,javascript,json,handlebars.js,Javascript,Json,Handlebars.js,我有一个JSON,看起来像这样: { list: [ { name: 'AAA', id: 1, age: 34 }, { name: 'BBB', id: 2, age: 24 } ] } <ul> {{#each list}} <li onclick="someFunc({{this}})"&g
{
list: [
{ name: 'AAA',
id: 1,
age: 34
},
{ name: 'BBB',
id: 2,
age: 24
}
]
}
<ul>
{{#each list}}
<li onclick="someFunc({{this}})">{{name}} ({{age}}) </li>
{{/each}}
</ul>
... onclick="someFunc( {name: 'AAA', id: 1, age: 34} )" ...
还有这样一个模板:
{
list: [
{ name: 'AAA',
id: 1,
age: 34
},
{ name: 'BBB',
id: 2,
age: 24
}
]
}
<ul>
{{#each list}}
<li onclick="someFunc({{this}})">{{name}} ({{age}}) </li>
{{/each}}
</ul>
... onclick="someFunc( {name: 'AAA', id: 1, age: 34} )" ...
而我希望它是这样的:
{
list: [
{ name: 'AAA',
id: 1,
age: 34
},
{ name: 'BBB',
id: 2,
age: 24
}
]
}
<ul>
{{#each list}}
<li onclick="someFunc({{this}})">{{name}} ({{age}}) </li>
{{/each}}
</ul>
... onclick="someFunc( {name: 'AAA', id: 1, age: 34} )" ...
如何解决此问题?发布供将来参考: 我从这里得到了答案: 原来Handlebar在粘贴到模板之前对数据进行了toString。我所要做的就是注册一个helper方法,将其转换回json
Handlebars.registerHelper('json', function(context) {
return JSON.stringify(context);
});
<li onclick="someFunc({{json this}})">{{name}} ({{age}}) </li>
handlebar.registerHelper('json',函数(上下文){
返回JSON.stringify(上下文);
});
{{{name}}({{age}})
Alt:我通常使用data*属性来表示我想在这种场景中渲染的属性。这是什么意思?我应该注册自己的助手方法吗?