聚合物用户的问题:
如果元素不是父子关系或子父关系,我如何获得属性值?据我所知,听众链是非常糟糕的主意。是否可以指定侦听事件的具体元素?
我知道可以用JS方式完成:
user
但我需要聚合物方式。
谢谢。
答案 0 :(得分:1)
简而言之,就是这样设计的。
孤立的DOM:组件的DOM是独立的(例如 document.querySelector()不会在组件的阴影中返回节点 DOM)。
参考。 https://developers.google.com/web/fundamentals/web-components/shadowdom
您应该依靠数据绑定和事件来在构建在shadow DOM上的Web组件之间进行通信。而且,聚合物元素就是这样的网络组件。
答案 1 :(得分:1)
Plain Polymer使用中介模式,这意味着父项调解其所有子项,因此,只有父项可以使用绑定访问子项的属性。
双向绑定是implemented using events,即您可以执行以下操作,而不是双向绑定:
<child-element property-changed="onPropertyChanged_"></child-element>
但是,由于这些事件是非冒泡的,因此只能在父组件中访问它。
如果您想要更全局的状态管理并在整个应用程序中共享某种状态,您应该查看Redux,可能与Polymer绑定Polymer-Redux结合使用。有关此主题的更多信息,请参阅Kevin's this talk。