2014-09-12 2 views
0

Я заменил некоторый повторяющийся код в моем файле частичными, но теперь вызов относительной части больше не работает.handlebars.js: относительные пути в частичных не работают

У меня есть эти структуры данных:

var data = { staff: [ 
     {"name": "Alan"}, 
     {"name": "Bettina"} 
     ],"company": "Rad, Inc."}; 

Оригинальный шаблон выглядит следующим образом:

<script id="first_template" type="text/x-handlebars-template"> 
{{#each staff}} 
    <li>Name: {{name}} , Company: {{../company}}</li> 
{{/each}} 
</script> 

Я изменил его, как это использовать частичный:

<script id="list-partial" type="text/x-handlebars-template"> 
    <li>Name: {{name}} , Company: {{../company}}</li> 
</script> 

<script id="second_template" type="text/x-handlebars-template"> 
{{#each staff}} 
    {{> list}} 
{{/each}} 
</script> 

В пример с частичным названием компании не получается. Я приведу рабочий пример на jsfiddle: http://jsfiddle.net/staeff/qwms6h2b/

Кто-нибудь видит, почему он не работает, что я пытаюсь сделать?

+0

Поскольку частицы имеют свой собственный контекст, в который вы проходили. Конструкция '{{> list}}' эквивалентна '{{> list this}}'. – raidendev

+0

Привет raidendev, спасибо за ответ. Я прочитал контекст, но все еще смущен. Не будет ли это «правильным» контекстом, для чего я хочу? – staeff

+0

Проблема заключается в '{{../ company}}' конструкции, потому что у вас нет верхнего уровня '../' в частичном. Один из способов решить это - переместить '# each' внутри частичного и назвать его чем-то вроде« staffList ». Но правильный способ - реорганизовать вашу структуру данных. – raidendev

ответ

0

Ответил raidendev в комментариях

Проблема в {{}} ../company строительство, потому что у вас нет верхнего ../ уровня в парциальное. Один из способов решить эту проблему - переместить # внутри внутри частичного и назвать его чем-то вроде «staffList». Но правильный способ - реорганизовать вашу структуру данных. - raidendev

Хорошо, я выяснил, что мой вопрос обсуждался и решался на stackoverflow, но я не знал, что искать. См. Вопрос handlebars - is it possible to access parent context in a partial? для решения моей точной проблемы.

Смежные вопросы