,所以这可能是一个很难理解的问题,但是从本质上讲,我试图将一个值传递给我的聚合物应用的另一种视图。
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甚至在窗口对象中保存变量。