我正在制作一个仪表板,其中我在顶部有一个搜索面板(让我们称之为组件A),用户可以在其中输入查询。此输入的值将更改仪表板中的许多其他组件(不仅是作为其直接后代或兄弟姐妹的组件)。我想将搜索值从组件A发送到组件B,组件B应该通过对输入值执行一些操作来响应。
我尝试了一些事情:
我怎样才能做到最好? 我对Polymer来说比较新,所以请原谅我,如果我的想法不是完全的,那就是聚合的' :)
方法1
<dom-module id="component-B">
<template>
</template>
<script>
Polymer({
is: 'component-B',
properties: {
id: '',
observer: '_idUpdate'
},
_idUpdate: function(){
console.log("HELLO");
}
});
</script>
</dom-module>
<dom-module id="component-A">
<template>
</template>
<script>
Polymer({
is: 'component-A',
idSearch: function() {
var id = this.$.search.value;
document.querySelector('component-B').properties.id = id;
},
});
</script>
</dom-module>
答案 0 :(得分:1)
由于您希望将数据发送到多个元素(可能不是触发元素的兄弟元素),您可以使用这两种方法中的任何一种
使用iron-signal触发信号,然后使用您想要数据的所有元素使用铁号信号来收听信号
<iron-signals on-iron-signal-<signal-name>="<function>"></iron-signals>
您还可以使用标准HTML方法dispatchEvent
触发信号,然后在您想要数据的所有元素中添加eventListeners
。