Polymer 将路由参数传递给元素

Polymer 将路由参数传递给元素,polymer,polymer-starter-kit,Polymer,Polymer Starter Kit,在显示路由参数时使用,如下所示: <section data-route="user-info"> <paper-material elevation="1"> <h2 class="page-title">User: {{params.name}}</h2> <div>This is {{params.name}}'s section</div> </paper-material> &l

在显示路由参数时使用
,如下所示:

<section data-route="user-info">
  <paper-material elevation="1">
    <h2 class="page-title">User: {{params.name}}</h2>
    <div>This is {{params.name}}'s section</div>
  </paper-material>
</section>
<notification-section params="{{params}}" data-route="notifications"></notification-section>
虽然我可以将数据传递给元素并在其模板中盖章,但我无法从任何变量(例如
ready
)访问
params
变量


如何做到这一点?

由于元素是从最深的子元素开始准备的,
就绪
事件将无法访问设置为我的提升组件的数据。如果您希望基于该数据对元素进行功能更改,则需要绑定到
changed
事件,或者考虑另一种初始化该元素的方式,即
iron pages

支持的内容,您可以像这样从“attached”回调访问参数

Polymer({
  is: 'notification-section',
  properties: {
    params: {
      type: Object,
    },
  },
  attached: function(e) {
    console.log('params', this.params);
  },
});
您可以阅读有关附加事件的更多信息


据我所知,我还有一个工作演示

,在
就绪
附加的
生命周期事件(在
通知部分
)时,父元素尚未创建。任何动态设置的属性都不会在子项(
通知部分
)中准备就绪。在我的代码中测试这一点表明参数未定义。很抱歉,我以为您的意思是喜欢。您是否在传递给子元素的父元素上设置属性,并尝试从一个子元素生命周期事件中读取该属性?如果不是的话,我误解了这个问题,对不起,这正是我想要的。但这在我的代码中不起作用。我必须查一下-我会再打给你的。关于你的代码,你还有什么可以告诉我的吗,包括浏览器、聚合物版本和导入元素的主文件的结构?如果我能让我的演示尽可能接近你的代码,我可能会更好地了解发生了什么。我认为你是正确的。我正在寻找替代方案-也许
iron meta
@Mike如果
可用,您可以将子元素包装在
dom中,并且只在
params.name
可用时实例化它,然后它就会出现。虽然处理开销略有增加,但如果您在生命周期事件中确实需要该参数,那么应该可以满足您的需要。我想知道你在那些时候通过提供这些信息试图得到什么,你在问题中给出的例子似乎没有从中受益,但我相信这只是手头更大问题的一个升华。