{{^ foreach}} не работает в теме Ghost (0.9.0)

Я работаю над темой-призраком, и у меня возникли проблемы с тем, чтобы помощник foreach соблюдал условие else (или отрицание) в сочетании с #get.

Действия по воспроизведению

1) Включите «Общедоступный API» в «Настройки»> «Лаборатория»> «Включить бета-функции» Ghost. 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}}

Технические подробности:

  • Призрак 0.9.0 и 0.8.0
  • Узел v4.4.7
  • Chrome v52
  • sqlite

См. проблему с привидениями № 7242.


person Henry Marshall    schedule 17.08.2016    source источник


Ответы (1)


Я открыл проблему с github и получил там решение. Вам следует поместить {{each}} непосредственно в {{#get}}:

{{#get "posts" filter="tags:xyz"}}
  {{#foreach posts}}
    yeah posts
  {{/foreach}}
{{else}}
  no posts found
{{/get}}
person Henry Marshall    schedule 22.08.2016