问题是这样的:
任何两个聚合物元素都可能需要通信。没有假设这些元素可能位于 DOM(或影子 DOM)中的位置,这意味着一个事件不能简单地冒泡到另一个元素。
实现这一点的好旧方法是让事件冒泡到根节点,然后触发播送根节点上的事件供其他元素监听。
然而,这种方法破坏了封装,并且似乎违背了 Polymer 的整体设计。例如,AngularJS 提供了一个事件广播器,可以防止控制器不必要地保留对根节点的引用。
这种方法可以用 Polymer 实现吗?否则可以用不同的方法解决这个问题吗?
您应该能够使用以下方法来执行此操作polymer-signals
http://www.polymer-project.org/articles/communication.html#using-ltpolymer-signalsgt http://www.polymer-project.org/articles/communication.html#using-ltpolymer-signalsgt
引用文档:
您的元件发射聚合物信号并在其有效负载中命名该信号:
this.fire('polymer-signal', {name: "foo", data: "Foo!"});
该事件冒泡到文档中,处理程序在其中构造并向所有 .您的应用程序或其他 Polymer 元素的部分可以声明一个元素来捕获指定信号:
<polymer-signals on-polymer-signal-foo="{{fooSignal}}"></polymer-signals>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)