我有两个聚合物元素:<element-a> <element-b>
它们都是父<element-c>
内的子元素,并且每个都在不同的文件中。
在<element-a>
中,我有一个<paper-listbox>
,里面有一些<paper-item>
,其中有点击事件以获取它的值。
我的目标是:在<element-b>
方面,我想通过API来获取这样的网址:
API / CONFIGS / {{tempId}}
并在<p>
点击事件<element-b>
时触发<paper-listbox>
<element-a>
。
{{tempId}}是来自<paper-listbox>
方的所选<element-a>
的值。
我已经获得了所选的<paper-listbox>
值,我尝试将其打印在控制台上,但不知道如何在不调用元素的情况下将其传递给<element-b>
。已经尝试过某种方式,比如使用会话存储为{{tempId}}设置一个临时值,但不知道什么时候在<element-b>
方面调用它。尝试从准备好的功能中调用它:功能&#39;,我知道并没有工作。我只是试着确保它。
下面是一些插图的代码
// element-a.html
...
<paper-listbox selected="0">
<template is="dom-repeat" items="{{response.data}}">
<paper-item value="{{item.id}}" on-tap="_getId">
Configuration ID {{item.id}}
</paper-item>
</template>
</paper-listbox>
<script>
...
_getId: function(e) {
var tempId = e.path[0].value;
console.log(e.path[0].value);
}
...
</script>
然后
//element-b.html
<iron-ajax
...
url="api/configs/{{tempId}}"
...
>
非常感谢您的任何帮助。感谢。
答案 0 :(得分:1)
如果属性在父元素中,那么您可以在子元素中使用它,如
<element-b temp-id=[[tempId]]></element-b>
但在你的情况下,你可以在你的父元素中有一个监听器
listeners: {
'on-tap-listener': '_abc'
}
并在<element-a>
中像这样点击事件
_getId: function(e) {
var tempId = e.path[0].value;
console.log(e.path[0].value);
this.fire('on-tap-listener',tempId);
}
现在,您在父元素中拥有tempId并将其分配给属性并将其绑定到element-b
,如上所示
_abc:function(data){
this.tempId = data.detail.tempId;
},