聚合物2中的铁信号交替出现?

问题描述 投票:1回答:1

在我的应用中,我几乎无处不在地使用铁信号。

现在我将聚合物1应用升级到聚合物2,我发现<iron-signals>不再使用了。

实现同样目标的替代途径是什么?我基本上想在我的网络应用程序中的不同页面之间传递数据。

polymer polymer-2.x
1个回答
3
投票

您应该能够简单地从一个元素上调度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就是它促进了难以调试的通信架构。

来自<iron-signals> README

注意:每当您可以使用控制器(父元素)来调解通信时,请避免使用铁信号。

© www.soinside.com 2019 - 2024. All rights reserved.