我正在研究Ghost主题,并且无法使foreach
助手与一起尊重else
条件(或否定)#get
。
1)在Ghost的“设置>实验>启用Beta功能”中启用“公共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
。我毫不费力地再现了他们的例子:
{{#foreach tags}}
<a href="{{url}}">{{name}}</a>
{{else}}
<p>There were no tags...</p>
{{/foreach}}
我打开了一个github问题,并在那里收到了解决方案。您应该将{{each}}直接放在{{#get}}上:
{{#get "posts" filter="tags:xyz"}}
{{#foreach posts}}
yeah posts
{{/foreach}}
{{else}}
no posts found
{{/get}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句