Я пишу свое клиентское приложение в aureliajs. И по умолчанию для такого маршрута:
/app/access/management
мое приложение отображается следующим образом:
Например, предположим, что заголовок и боковая панель отображаются в app
, затем общий контейнер в access
и, наконец, основной HTML-код в management
.
Теперь у меня есть подкомпонент access
, например, с именем list
. И в этом компоненте я хочу, чтобы страница отображалась без какого-либо родительского контейнера (без родительских тегов html).
Поэтому я думаю, что у меня есть несколько решений:
Создание list
в другом модуле, например /app1/access/list
, который не отображает дополнительный html в приложении1 и доступе.
Сделайте условие внутри app
и access
, чтобы решить отрисовку верхнего и нижнего колонтитула и т. д.
Вызовите функцию в list
, чтобы скрыть нарисованный макет в родителях.
Но я не могу найти лучший способ. Например, способ сказать родителю не отображать что-либо.
Какова наилучшая практика или шаблон?
Вы можете использовать условие 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 --> макеты
комбинированное использование макетов и подмаршрутов доставило мне неприятности, но, в конце концов, я каким-то образом решил эту проблему. Спасибо.
Спасибо Мохаммад. Ответ Омида решил мою проблему. Я думаю, что это более подходящее решение, хотя ваше подходит.