Я не очень хорош с железными страницами и app-route, поэтому я постараюсь объяснить это как можно лучше.
Я создаю веб-приложение с двумя основными "приложениями", встроенными в него.- обычный пользовательский интерфейс и панель администратора.Поэтому, естественно, я бы хотел два разных основных «пути»: /admin
и /home
Панель администратора должна иметь ящик, в котором я могу выбирать из списка «категорий» и после выбораКатегория, загрузить определенный вид.Пример /admin/users
загрузит представление, которое загрузит список пользователей.И после нажатия на элемент на странице списка, откройте раздел подробностей.Пример /admin/user/UserA
Вот моя структура до сих пор.У демо-приложения есть железные страницы, которые содержат HomePage и AdminPage.AdminPage также имеет железные страницы, которые содержат ListView и DetailView.
Я могу попасть на страницу администратора, но после выбора из списка «категорий» маршрут не выбирается.Я основываю свой код на демоверсии магазина
демо-приложение
<app-location route="{{route}}"></app-location>
<app-route
route="{{route}}"
pattern="/:page"
data="{{routeData}}"
tail="{{subroute}}"></app-route>
<iron-media-query query="max-width: 767px" query-matches="{{smallScreen}}"></iron-media-query>
<app-header role="navigation" id="header" effects="waterfall" condenses reveals>
<app-toolbar>
</app-toolbar>
</app-header>
<iron-pages role="main" selected="[[page]]" attr-for-selected="name" selected-attribute="visible" fallback-selection="404">
<!-- home view -->
<demo-home name="home"></demo-home>
<!-- admin view -->
<demo-admin name="admin"></demo-admin>
<shop-404-warning name="404"></shop-404-warning>
</iron-pages>
demo-admin
<app-route
route="{{route}}"
pattern="/admin"
data="{{routeData}}"
tail="{{subroute}}"></app-route>
<h1>Admin</h1>
<ul>
<li><a href="/admin/users">Users</a></li>
<li><a href="/admin/bars">Bars</a></li>
<li><a href="/admin/stepsheets">Stepsheets</a></li>
<li><a href="/admin/events">Events</a></li>
</ul>
<p>subroute: [[subroute]]</p>
<iron-pages role="main" selected="{{subroute.path}}" attr-for-selected="name" selected-attribute="visible" fallback-selection="404">
<demo-list name="list" route="{{subroute}}"></demo-list>
</iron-pages>
</template>
демо-список
<app-route
route="[[route]]"
pattern="/admin/:collection"
data="{{routeData}}"></app-route>
<h1>Collection: [[routeData.collection]]</h1>
РЕДАКТИРОВАТЬ Я мог бы быть на что-то ...
<app-location route="{{route}}"></app-location>
<app-route
route="{{route}}"
pattern="/:page"
data="{{routeData}}"
tail="{{subroute}}"></app-route>
<app-route
route="{{subroute}}"
pattern="/:category"
data="{{subrouteData}}"></app-route>
, а затем
static get observers() { return [
'_routePageChanged(routeData.page)',
'_routeCategoryChanged(subrouteData.category)'
]}
Не уверен, что это правильный способ сделать это?Я чувствую, что это стало бы очень громоздким, если бы у меня был URL с 3+ подгруппами
РЕДАКТИРОВАТЬ 2