我有一個部分模板,表示表中的一行,它也直接從Javascript中使用(見下面的背景)。這是我如何使用它作爲一個部分:如何在部分模板中設置@key? (或爲什麼它不可能?)
{{#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"};
我的問題是:我如何定義@key
直接使用JST.my_onerow
模板時?或者,如果不可能的話,任何人都可以對Handlebars內部有所瞭解,以解釋爲什麼它不容易被添加?
(我使用的把手1.3.0。)
背景:我這樣做是通過創建它作爲一個正常的模板,編譯成JST
,然後我提出可以作爲這一行的諧音所有模板:
Handlebars.partials = JST;
這一點工作正常。我只是把它提到一邊。