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

时间:2017-12-14 10:42:10

标签: polymer polymer-2.x

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

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

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

2 个答案:

答案 0 :(得分: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

  

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

答案 1 :(得分:1)

聚合物1中已弃用铁信号。

用铁元代替铁信号。