Добавление дополнительных блоков контента в KeystoneJS с рулем

Я использую руль с KeystoneJS и пытаюсь расширить основной импорт в шаблоне по умолчанию. На данный момент он включает только тег {{{body}}}, импортированный через представление, а также партиалы, которые я использую.

Есть ли способ добавить пару других импортов (например, вводный контент, заголовок страницы, дополнительные скрипты). В нефритовой версии на демо-сайте он просто импортирует его как блок контента. Это ограничение руля?


person Shadow133    schedule 08.12.2015    source источник


Ответы (1)


Вы можете сделать это с помощью руля, просто используя частичные.

Поместите свой частичный файл в папку, указанную ниже:

введите здесь описание изображения

Затем в вашем макете (в данном случае «default.hbs») ссылайтесь на частичное, как обычно в руле.

<div id="header">
    {{> navigation this}}
</div>
  • '>' означает частичную вставку.
  • В этом случае 'navigation' – это частичное имя в папке partials.
  • 'this' — это контекст данных. Это то, что вы хотите сделать с объектом locals.data, переданным в руль с помощью keystone. Использование «this» пропустит всю партию, тогда как выполнение чего-то вроде «locals.data.navigation» передаст объект навигации в частичное, сделав его напрямую доступным в частичном (хорошо для DRY).

Надеюсь, это поможет. Специальная документация по партиалам для рулей находится здесь, если вы заинтересованы в изучении еще нескольких вещей, которые вы можете сделать с областью действия и т. д. http://handlebarsjs.com/partials.html

person Jeremy Hindle    schedule 09.12.2015