【发布时间】:2014-02-20 22:07:30
【问题描述】:
我有一个部分模板,代表表格中的一行,也可以直接从 Javascript 中使用(参见下面的背景)。以下是我如何将其用作部分:
{{#each this}}
{{> my_onerow}}
{{/each}}
这是一个简化的my_onerow:
<div>{{@key}}: {{x}}, {{y}}</div>
我将这些模板作为JST.my 和JST.my_onerow 提供,所以我的JavaScript 看起来像:
var obj={
one:{x:"this",y:"that"},
two:{x:55,y:77},
three:{x:"hello",y:"world"}
};
$('body').append(JST.my(obj));
@key 在部分可用,所以我明白了:
<div>one: this, that</div>
<div>two: 55, 77</div>
<div>three: hello, world</div>
然后,当我想直接从 JavaScript 添加另一行时,我会这样做:
var newObj = {x:"new",y:"entry"};
$('body').append(JST.my_onerow(newObj));
这也可以,但是@key 是"",我不知道如何定义它。这不起作用:
var newObj = {"@key":"four",x:"new",y:"entry"};
我的问题是:直接使用JST.my_onerow 模板时如何定义@key?或者,如果不可能,任何人都可以深入了解 Handlebars 的内部结构,以解释为什么它不是可以轻松添加的东西吗?
(我正在使用车把 1.3.0。)
背景:我将其创建为普通模板,编译成JST,然后我通过这一行将所有模板作为部分可用:
Handlebars.partials = JST;
这个位工作正常。我只是顺便提一下。
【问题讨论】:
标签: handlebars.js