聚合物 - 如何将数据传递到元素视图



,所以这可能是一个很难理解的问题,但是从本质上讲,我试图将一个值传递给我的聚合物应用的另一种视图。

secrets-app.html

<a on-tap="_loadHuddle" name="{{item.$key}}" href="#/view2" >[[item.$key]]</a>
<iron-pages
    id="pages"
    selected="[[page]]"
    attr-for-selected="name"
    fallback-selection="view404"
    role="main">
  <my-view1 name="view1" route="{{route}}"></my-view1>
  <my-view2 name="view2" route="{{route}}" secret="{{secret}}"></my-view2>
  <my-view404 name="view404"></my-view404>
</iron-pages>
<script>
  properties: {
    secret: {
      type: String,
      value: ''
    }
  },
  _loadHuddle: function(e) {
    var clickedElement = e.target;
    // magically get data from the list menu item clicked!
    var item = this.$.messages.itemForElement(e.target);
    console.log("item", item)
    this.set('secret', item["which"]);

    console.log("loading huddle");
    this.set('route.path', '/view2');
    // this.$.pages.select("view2");
    this.$.drawer.close();
  },
</script>

当我单击a标签时,我希望能够存储"秘密"并将其发送到View2。我的理解是,我应该能够通过this.secret访问它,但事实并非如此。

我在 my-view2.html 中有一个_secrets观察者,该观察者在设置this.secrets时被调用,但是route.path的某些内容使this.secret = undefined。我需要定义这个定义,以最终可以对firebase进行正确的查询。

这就像我使用聚合物的第一周,因此仍在学习,任何帮助都将不胜感激:(

我敢打赌,这是因为您正在使用标签。尝试将其更改为另一个标签,例如,它将开始工作。

除此之外,您可以在localstorage甚至在窗口对象中保存变量。

最新更新