Условный родительский макет aureliajs

Я пишу свое клиентское приложение в aureliajs. И по умолчанию для такого маршрута:

/app/access/management

мое приложение отображается следующим образом:

Условный родительский макет aureliajs

Например, предположим, что заголовок и боковая панель отображаются в app, затем общий контейнер в access и, наконец, основной HTML-код в management.

Теперь у меня есть подкомпонент access, например, с именем list. И в этом компоненте я хочу, чтобы страница отображалась без какого-либо родительского контейнера (без родительских тегов html).

Поэтому я думаю, что у меня есть несколько решений:

  1. Создание list в другом модуле, например /app1/access/list, который не отображает дополнительный html в приложении1 и доступе.

  2. Сделайте условие внутри app и access, чтобы решить отрисовку верхнего и нижнего колонтитула и т. д.

  3. Вызовите функцию в list, чтобы скрыть нарисованный макет в родителях.

Но я не могу найти лучший способ. Например, способ сказать родителю не отображать что-либо.

Какова наилучшая практика или шаблон?

🤔 А знаете ли вы, что...
Aurelia предоставляет мощный механизм маршрутизации для управления навигацией в приложении.


4
96
2

Ответы:

Вы можете использовать условие if access component ViewModel, чтобы проверить, был ли маршрут /app/access/list, а затем загрузить компонент со свойством контейнера меньше.


Решено

Similar to MVC-style master/layout pages, Aurelia allows you to use a "layout" view like an MVC "master template" for a set of views.

The set of views subject to being part of a layout is defined in Aurelia as a set of views referenced by one or more routes in a router configuration. There are two ways to associate a layout with routes. The first is via HTML, the second is via view model code. ...

а также

... To specify a layout on the router-view custom element, we use the following attributes:

  • layout-view - specifies the file name (with path) of the layout view to use.
  • layout-view-model - specifies the moduleId of the view model to use with the layout view.
  • layout-model - specifies the model parameter to pass to the layout view model's activate function. ...

а затем через конфигурацию маршрута:

... We can also associate layouts with route configurations using code in our view model. Suppose we like what we've done above, but we have a couple views that we would like to associate with a different layout and would thus like to partially override the configuration given in the HTML. The following code is an example of how we can do that: ...

Я предлагаю вам внимательно прочитать эту статью: конфигурация маршрутизатора aurelia --> макеты