我正在处理Ghost主题,并且无法让foreach
助手与else
一起尊重#get
条件(或否定)。
1)在Ghost的“设置>实验室>启用测试版功能”中启用“公共API” 2)将以下代码添加到任何.hbs页面
{{!-- Obviously, this tag should not exist --}}
{{#get filter="tags:does-not-exist"}}
{{#foreach posts}}
foo
{{else}}
fails to show up
{{/foreach}}
{{^foreach posts}}
fails to show up
{{/foreach}}
{{!-- Problem persists using #posts shorthand --}}
{{#posts}}
foo
{{else}}
fails to show up
{{/posts}}
{{^posts}}
fails to show up
{{/posts}}
{{/get}}
3)在浏览器中检查该页面
预期结果:“无法显示”出现4次(每次参考一次)。 观察到的结果:“无法显示”永远不会出现
#get
按预期工作。在上面的代码块中,您会看到foo
每个帖子都会显示两次。
{{#foreach}}...{{else}}...{{/foreach}}
帮助程序之外使用时, #get
按the documentation运行。我复制他们的例子没有任何困难:
{{#foreach tags}}
<a href="{{url}}">{{name}}</a>
{{else}}
<p>There were no tags...</p>
{{/foreach}}