汇编:访问{{parseJSON}}中的全局变量

时间:2014-02-10 10:39:32

标签: handlebars.js assemble

假设您有某种部分,它使用全局变量:

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

包含特定数据的部分,{{parseJSON}}或外部JSON数据:

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

所有全局变量,如{{assets}}“已杀死”或至少被覆盖。有没有机会继续访问?

提前致谢!

2 个答案:

答案 0 :(得分:4)

这是Handlebar部分的已知“问题”,部分内容仅包括传入的上下文而没有父上下文等。您可以阅读有关问题here的更多信息。

幸运的是,Assemble团队提供了一个{{partial}} helper,允许访问更“预期”的上下文,包括全局属性。安装此帮助程序后,您使用它的方式与普通部分程序略有不同:

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

请注意,调用partial帮助程序时,部分名称要包含为字符串。

所有人都说,Handlebars的新版本刚刚发布(v2.0.0-alpha.1),可以为本机提供支持。查看我上面链接的问题主题的最新帖子。

希望这会有所帮助。

答案 1 :(得分:-1)

作为一种解决方法,处理此问题的另一种方法是将父上下文显式传递给partial:

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

呀。