Я работаю над темой-призраком, и у меня возникли проблемы с тем, чтобы помощник 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