从路由器到dom-element的聚合物数据

时间:2015-11-10 12:44:20

标签: polymer polymer-1.0 polymer-starter-kit

我从聚合物1.0开始,并创建了一个新的路径终点,如下所述。

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

所以,如果我去用户/ bob,它将转到" user-info"

在我的index.html中,路由定义如下

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

其中web-homepage是自定义元素。

自定义元素定义如下

<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>

有没有办法获得价值路线参数&#34;:name&#34;即准备功能内的bob?

1 个答案:

答案 0 :(得分:1)

导入和创建元素时执行

ready函数。如果你在那里访问路径参数,它很可能是null / empty / undefined。

但是,您可以将路径参数传递给元素,如下所示。

params中的app.params是app的属性。您只需将其传递给子元素即可。

index.html应该看起来像这样

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

在web-homepage中定义route-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>