У меня есть частичный шаблон, представляющий одну строку в таблице, которая также используется непосредственно из 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;
Этот бит отлично работает. Я просто упоминаю об этом как о стороне.