{{^foreach}} 不适用于 Ghost (0.9.0) 主题
{{^foreach}} not working in Ghost (0.9.0) Theme
我正在开发 Ghost 主题,但在让 foreach
助手与 #get
一起遵守 else
条件(或否定)时遇到了问题。
重现步骤
1) 在 Ghost 的 "Settings > Labs > Enable Beta Features" 中启用 "Public 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) 在浏览器中查看该页面
预期结果:"fails to show up" 出现 4 次(每个参考一次)。
观测结果:"fails to show up"从未出现
备注
当标签 存在时,#get
按预期工作。在上面的代码块中,您会看到 foo
每找到一次 post 就会出现两次。
{{#foreach}}...{{else}}...{{/foreach}}
在 #get
助手之外使用时,按照 the documentation 工作。我可以毫不费力地重现他们的例子:
{{#foreach tags}}
<a href="{{url}}">{{name}}</a>
{{else}}
<p>There were no tags...</p>
{{/foreach}}
技术细节:
- Ghost 0.9.0 和 0.8.0
- 节点 v4.4.7
- Chrome v52
- sqlite
我打开了一个github issue,在那里得到了解决方案。您应该将{{each}}直接放在{{#get}}上:
{{#get "posts" filter="tags:xyz"}}
{{#foreach posts}}
yeah posts
{{/foreach}}
{{else}}
no posts found
{{/get}}
我正在开发 Ghost 主题,但在让 foreach
助手与 #get
一起遵守 else
条件(或否定)时遇到了问题。
重现步骤
1) 在 Ghost 的 "Settings > Labs > Enable Beta Features" 中启用 "Public 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) 在浏览器中查看该页面
预期结果:"fails to show up" 出现 4 次(每个参考一次)。 观测结果:"fails to show up"从未出现
备注
当标签 存在时,#get
按预期工作。在上面的代码块中,您会看到 foo
每找到一次 post 就会出现两次。
{{#foreach}}...{{else}}...{{/foreach}}
在 #get
助手之外使用时,按照 the documentation 工作。我可以毫不费力地重现他们的例子:
{{#foreach tags}}
<a href="{{url}}">{{name}}</a>
{{else}}
<p>There were no tags...</p>
{{/foreach}}
技术细节:
- Ghost 0.9.0 和 0.8.0
- 节点 v4.4.7
- Chrome v52
- sqlite
我打开了一个github issue,在那里得到了解决方案。您应该将{{each}}直接放在{{#get}}上:
{{#get "posts" filter="tags:xyz"}}
{{#foreach posts}}
yeah posts
{{/foreach}}
{{else}}
no posts found
{{/get}}