2016-08-09 2 views
1

Я работаю над полимерным webApp с пружинной загрузкой, до сих пор мне нравились два отдельных приложения, потому что я не могу понять, как перемещаться с вкладки на вкладку, я бы действительно как объединить эти два, я не против иметь кнопки для навигации, пожалуйста.Навигация по динамическим страницам полимера

Как вы можете видеть на первом снимке есть вкладки, которые я хотел бы перемещать по ним, вкладка приложений, например, приведет меня к приложению на другом изображении. Я много искал в Интернете, но все, что я мог найти, - это перемещение между статическим контентом.

Это первое приложение enter image description here

и его ЦСИ

enter image description here

и это другое приложение

enter image description here

и его ЦСИ

enter image description here

ответ

3

Вы можете использовать компонент маршрута приложения. https://elements.polymer-project.org/elements/app-route

Вот поликаст о маршруте приложения. https://www.youtube.com/watch?v=iAgSvlYavX0&list=PLOU2XLYxmsII5c3Mgw6fNYCzaWrsM3sMN&index=2

В основном вы используете атрибут route и page для установки активного маршрута. Переключатель между активным элементом кода будет выполнен с использованием компонента селектора железа.

Что-то вроде этого:

<app-location route="{{ route }}"></app-location> 
<app-route route="{{ route }}" 
      pattern="/:page" 
      data="{{ routeData }}" 
      tail="{{ subroute }}"></app-route> 

<iron-selector attr-for-selected="route" 
       selected="[[ page ]]" 
       role="navigation"> 
    <a route="editor" href="/editor">Editor</a> 
    <a route="analyze" href="/analyze">Analyze</a> 
    <a route="community" href="/community">Community</a> 
</iron-selector> 

<iron-pages role="main" 
      attr-for-selected="route" 
      selected="[[ page ]]"> 
    <my-editor route="editor"></my-editor> 
    <my-analyze route="analyze"></my-analyze> 
    <my-community route="community"></my-community> 
</iron-pages> 

<script> 
    Polymer({ 
     is:'my-element', 
     properties: { 
      page: { 
       type: String, 
       notify: true, 
       reflectToAttribute: true, 
       observer: "_pageChanged" 
      } 
     }, 

     observers: [ 
      "_routePageChanged(routeData.page)" 
     ], 

     attached: function(e) { 
      // Lazyload the views as soon as the AppShell has been Painted 
      this.importHref(
       this.resolveUrl("my-editor.html"), null, null, true); 
      this.importHref(
       this.resolveUrl("my-analyze"), null, null, true); 
      this.importHref(
       this.resolveUrl("my-community"), null, null, true); 

      // If the application is reloaded, redirect to /analyze 
      if(this.page != "analyze"){ 
       this.set("route.path", "/analyze"); 
      } 
     }, 

     _changeRoute: function(e) { 
      this.set("route.path", e.detail.requestRoute); 
     }, 

     _routePageChanged: function(page) { 
      this.page = page || "analyze"; 
     }, 
    }) 
</script> 
+0

да, я видел видео, но я не знаю, как связать их с вкладками элемента – mahaSaez

+0

В моем примере я имею железо-селектор и компонентов железо-страницы, железо-селектор - это ваши параметры панели навигации, а страницы железа - ваш менеджер переключателей страниц, а страница - значение атрибута маршрута. Когда вы нажмете на опцию iron-selector, он скажет URL-адрес href «go to/editor», также он обновит страницу переменной до значения маршрута на , страница - это переменная, которая используется по железным страницам, чтобы узнать, какой фрагмент кода должен быть активным, поэтому он будет рассматривать маршрут атрибута, который имеет то же имя, что и страница attibute, и будет активировать этот фрагмент кода. – MarioAleo

Смежные вопросы