2014-11-21 2 views
0

В коллекции core-(animated)-pages мне нужна моя выбранная страница, чтобы реагировать на то, что она стала выбранной. Я не могу понять, какое событие поймать где. Пробовал простой load, но это не вызвано.с использованием основных страниц, есть ли событие с загрузкой страницы?

Если по умолчанию такого события нет, может ли on-core-select инициировать событие в my-element, чтобы сообщить ему, что он должен загрузить его данные?

  <core-animated-pages id="appPages" selected="{{selectedPage}}" valueattr="data-name" transitions="slide-from-right" on-core-select="{{pageSelected}}"> 
       <my-page data-name="Round 1" color="red"> 
        <div>Page 1</div> 
       </my-page> 
       <my-page data-name="Round 2" color="yellow"> 
        <div>Page 2</div> 
       </my-page> 
       <my-page data-name="Round 3" color="grey"> 
        <div>Page 3</div> 
       </my-page> 
      </core-animated-pages> 



<polymer-element name="my-page" attributes="color"> 
<template> 
    <section data-name="Round 1" layout vertical center center-justified style="background:{{color}};"> 
     <content></content> 
    </section> 
</template> 
<script> 
    Polymer('my-page', { 
     load: function (e) { 
      console.info(e) 
     } 
    }); 
</script> 

+0

пути я делаю что-то близкое к тому, что вы говорите используют FlatIron-директор и сделать каждую страницу в моих основных анимированном-страницах маршрут и прослушивании для маршрута чтобы изменить, а затем выполните мою функцию. –

+0

Спасибо, думаю, я делаю что-то подобное сейчас, см. Комментарий к следующему ответу – Jens

+0

очень рад, что вы его заработали. только разница в функциональности, о которой я знаю в двух подходах, - это с помощью flatiron-директора вы получаете маршрутизированные страницы .. т.е. www.url.com # стр.1. должен был только что опубликовать мой код, но я не уверен, что это было то, что вы искали. –

ответ

0

Основываясь на основных анимированном-страницах документации (https://www.polymer-project.org/docs/elements/core-elements.html#core-animated-pages), элемент занимает свое имя переходов и ищет элементы, содержащие то же самое слово. Например:

<core-animated-pages transitions="hero-transition"> 
    <section id="page1"> 
    <div id="hero1" hero-id="hero" hero></div> 
    </section> 
    <section id="page2"> 
     <div id="hero2" hero-id="hero" hero></div> 
    </section> 
</core-animated-pages> 

Это должно помочь вам избежать написания логики, чтобы показать/скрыть свой элемент. В документах также отображаются события, инициированные до и после перехода.

0

Похоже, есть два события, срабатывающие в разное время:

  • core-animated-pages-transition-prepare и
  • core-animated-pages-transition-end.

От https://github.com/Polymer/core-animated-pages:

<!-- 
    Fired before a page transition occurs. Both pages involved in the transition are visible when 
    this event fires. This is useful if there is something the client needs to do when a page becomes visible. 

    @event core-animated-pages-transition-prepare 
--> 

<!-- 
    Fired when a page transition completes. 

    @event core-animated-pages-transition-end 
--> 
+0

Это интересно, но, похоже, не помогает в моем случае. Кажется, что два обработчика событий не имеют никакой информации о страницах, с которыми он имеет дело. Тупик. Я вернулся, чтобы изучить «on-core-selected», и действительно, 'detail.item' можно использовать для доступа к материалам на странице, особенно к элементу« core-ajax », и затем я могу вызвать 'go()', чтобы получить свежие данные. спасибо, что заставило меня переосмыслить :-) – Jens

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