使用把手或小胡子模板从couchdb 无需转换呈现附件名称。
{
"_id":"123",
"_attachments":{
"evil.jpg":{
"content_type":"image/jpeg",
"revpos":32,
"digest":"md5-CKtT5WWRLkmGDD3/DhK6FQ==",
"length":41915,
"stub":true
}
}
}
我认为这与Getting key's in handlebar重复。
// based on the `#each` helper, requires jQuery (for jQuery.extend)
Handlebars.registerHelper('each_hash', function(context, options) {
var fn = options.fn, inverse = options.inverse;
var ret = "";
if(typeof context === "object") {
for(var key in context) {
if(context.hasOwnProperty(key)) {
// clone the context so it's not
// modified by the template-engine when
// setting "_key"
var ctx = jQuery.extend(
{"_key":key},
context[key]);
ret = ret + fn(ctx);
}
}
} else {
ret = inverse(this);
}
return ret;
});
答案 0 :(得分:1)
车把的开发人员正在讨论putting this in
如果您只是想添加它,帮助者应该完成这项工作。你的模板会是这样的。
{{#each_hash _attachments}}
{{_key}} - {{content_type}}
{{else}}
You didn't pass in an object!
{{/each_hash}}
帮助程序基本上只是遍历对象并动态进行转换。它遍历对象并将键添加为_key变量。您不必包含else语句,默认情况下它不会返回任何内容。