Иконки навигации загружаются в layout.html, но не во фрагмент для api-headless api - PullRequest
0 голосов
/ 11 октября 2018

Я создал фрагмент для апостроф-безголового, который загружает мое главное навигационное меню.

'apostrophe-pages': {
      restApi: true,
      apiTemplates: [ 'leftMenu']
},

Этот фрагмент имеет две функции:

  • в представлениях/layout.html Я {% include "apostrophe-pages:api/leftMenu.html" %} это
  • и я также передаю его в наше угловое приложение через / api / v1 / apostrophe-pages /? render = leftMenu.html в этом фрагменте я строю свое меню, включающее несколько навигационных элементов.

    {%- for tab in homeData._children -%}
       {% set imageURL = apos.attachments.url(apos.images.first(tab.navicon), { size: 'one-third' }) or null %}
        {{ apos.log(tab.navicon) }}
        <li><a href="/"><img src="{{ imageURL }}"></a></li>
    {% endfor %}
    

ПРОБЛЕМА: Это tab.navicons не загружается, когда этот фрагмент вызывается через API.

views / layout.html console.log из tab.navicon

_docId:"cjiqwpbjb00202zya1uf6wcm8"
_dotPath:"navicon"
_edit:true
items:Array(1) [Object]
type:"area"
__proto__:Object {constructor: , __defineGetter__: , 
__defineSetter__: , …}

/ api / v1 / apostrophe-pages /? Render = leftMenu.html console.log из tab.navicon

items:Array(1) [Object]
type:"area"
__proto__:Object {constructor: , __defineGetter__: , 
__defineSetter__: , …}

Есть мысли?Это может быть проблема с фильтрами / глубиной?

1 Ответ

0 голосов
/ 17 октября 2018

В настоящее время это невозможно с apostrophe-headless в одном вызове.Как корневой маршрут GET, который извлекает все дерево, так и маршрут на страницу GET в настоящее время имеют жестко заданный код areas(false) для производительности при загрузке дочерних элементов.

Это можно исправить, добавив изначально пустой метод, которому предоставляется шансизменить этот объект курсора до выполнения запроса.Тогда будут возможны переопределения на уровне проекта.Это потребовало бы запроса на выдачу апострофу без головы, но это не было бы очень сложно.

В то же время, обходной путь должен делать дополнительные вызовы без апострофов для каждой из дочерних страниц.Ответ для самой страницы всегда будет загружать области (и, таким образом, объединяться с изображениями, заполняя искомые данные).Для повышения производительности вы можете кэшировать эти ответы в своем клиентском коде.

У меня открыта проблема github на этом .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...