2015-11-10 4 views
1

Я начал с полимера 1.0 и создал новую конечную точку маршрута, как указано ниже.Полимерные данные от маршрутизатора до dom-element

page('/users/:name', scrollToTop, function(data) { 
     app.route = 'user-info'; 
     app.params = data.params; 
    }); 

так что если я иду на пользователей/боб он будет идти к маршруту «пользователь-инфо»

в моей index.html маршрут определяется как ниже

<section data-route="user-info"> 
    <web-homepage></web-homepage> 
</section> 

где web- Домашняя страница - это настраиваемый элемент.

пользовательский элемент, как определено ниже

<dom-module id="web-homepage"> 
    <template> 
    This is homepage 
    </template> 

    <script> 
    (function() { 
     'use strict'; 

     Polymer({ 
     is: 'web-homepage', 
     ready:function() { 
      //want to get the route parameters (eg: bob) here 
     } 
     }); 
    })(); 
    </script> 

</dom-module> 

Есть ли способ, чтобы получить значение параметра маршрута «: имя» боб внутри то есть готовая функция?

ответ

1

ready Функция выполняется, когда элемент импортируется и создается. Если вы получите доступ к параметрам маршрута там, это скорее всего будет null/empty/undefined.

Однако вы можете передать параметры маршрута элементу, как показано ниже.

params в app.params является собственностью приложения. Вы можете просто передать его своим дочерним элементам.

index.html должен выглядеть следующим образом

<section data-route="user-info"> 
    <web-homepage route-params=[[params]]></web-homepage> 
</section> 

Определить маршрут-Params в веб-странице

<dom-module id="web-homepage"> 
    <template> 
    This is homepage 
    </template> 

    <script> 
    (function() { 
     'use strict'; 

     Polymer({ 
     is: 'web-homepage', 
     properties: { 
      routeParams: { 
      type: Object, 
      observer: '_routeParamsChanged' 
      } 
     }, 
     ready:function() { 
      //ready function is run during element creation. route-params will most likely be empty/null/undefined 
      //Just random 
      //want to get the route parameters (eg: bob) here 
     }, 
     _routeParamsChanged: function(newValue) { 
      console.log('route params: ', newValue); 
     } 
     }); 
    })(); 
    </script> 

</dom-module> 
+0

_routeParamsChanged не определен. Я получаю эту ошибку сейчас. –

+0

ах. догадаться. вы должны дать «_routeParamsChanged». –

+1

Отредактировано для исправления. –

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