2014-02-10 6 views
3

Допустим, у вас есть частичный какой-то, который использует глобальную переменную:сборки: Доступ к глобальным переменным в {{parseJSON}}

<a href="/" class="logo"><img src="{{assets}}/logo.png"></a> 

После включения парциальное с конкретными данными, либо {{parseJSON}} или внешний данные в формате JSON:

{{#parseJSON '{"demo": true}'}} 
{{>navigation}} 
{{/parseJSON}} 

все глобальные переменные, такие как {{assets}} "убит" или, по крайней мере, переопределены. Есть ли шанс получить доступ еще?

Заранее благодарен!

+0

Как насчет '{{this.assets}}'? – Hariadi

ответ

4

это известная «проблема» с партизанами Руль в том, что контекст внутри частичного включает только переданный в контексте и без родительского контекста и т. Д. Вы можете больше узнать о проблеме here.

К счастью, команда Assemble предоставляет {{partial}} helper, что позволит получить доступ к более «ожидаемому» контексту, включая глобальные свойства. после установки этого помощника, вы используете его в несколько ином виде, чем нормальная парциальным:

{{#parseJSON '{"demo": true}'}} 
    {{partial "navigation"}} 
{{/parseJSON}} 

отмечает, что помощник partial вызываются с именем парциального включить в строке.

что все сказанное, новая версия Handlebars была выпущена (v2.0.0-alpha.1), которая может обеспечить поддержку для этого изначально. ознакомьтесь с более поздними сообщениями о проблеме, связанной с i.

надеюсь, что это поможет.

+1

Как сказал @waynedpj, будет доступ к корню напрямую, используя '@ root.assets', чтобы вы могли использовать его внутри своей частичной навигации. Я не думаю, что он был выпущен в стабильной версии Handlebars, но мы постараемся как можно быстрее обновиться, когда он будет выпущен. – doowb

+0

Ах! Это очень помогает! Спасибо за поддержку! – ddprrt

+0

@ddprrt не забудьте отметить правильный ответ! ;-) – jonschlinkert

-1

В качестве обходного пути, другой способ справиться с этим, чтобы передать родительский контекст явно парциальное:

{{#..}} 
    {{>partial}} 
{{/..}} 

Да.

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