在我的应用中,我几乎无处不在地使用铁信号。
现在我将聚合物1应用升级到聚合物2,我发现<iron-signals>
不再使用了。
实现同样目标的替代途径是什么?我基本上想在我的网络应用程序中的不同页面之间传递数据。
您应该能够简单地从一个元素上调度window
上的事件,并在其他元素中监听它们。
// Element 1
class FooElement extends Polymer.Element {
connectedCallback() {
super.connectedCallback()
}
ready() {
super.ready()
window.addEventListener('bar-was-called', e => {
console.log(e.detail) // logs 'hello-bar'
})
}
}
// Element 2
class BarElement extends Polymer.Element {
connectedCallback() {
super.connectedCallback()
}
ready() {
super.ready()
}
doBar() {
window.dispatchEvent(new CustomEvent('bar-was-called', {
detail: 'hello-bar'
}))
}
}
请记住,iron-signals
因某种原因被删除了。 AFAIK就是它促进了难以调试的通信架构。
注意:每当您可以使用控制器(父元素)来调解通信时,请避免使用铁信号。