聚合物中的主机与目标

时间:2017-01-28 16:41:05

标签: polymer target host

我试图了解以下上下文中的主机和目标(和元素)取自Polymer PathPolymer Data Flow文档。

考虑下图:

enter image description here

现在考虑以下声明(来自相同的documentation):

"当本地DOM中的两个元素绑定到同一属性时,数据似乎从一个元素流向另一个元素,但此流程由主机调解。"

到目前为止,这么好。然后继续说:

"由一个元素进行的更改传播到主机,然后主机将更改传播到第二个元素。"

第一部分:"由一个元素进行的更改传播到主机..."这是否意味着对第一个元素的更改首先传播到它自己的主机?是"元素"实际上是指元素的数据属性?

第二部分"然后主机将更改传播到第二个元素。"我们是否传播到第二个元素的数据属性?这里令人困惑,因为在两个ehhh元素之间只共享一个元素或数据对象?

我认为第一个元素的数据属性所做的更改首先转到它自己的主机,然后第一个主机将更改传播回第二个元素的数据元素(这也恰好是第一个元素的数据对象。

1 个答案:

答案 0 :(得分:2)

<parent-el>
  <user-profile primary-address="{{addr}}"></user-profile>
  <address-card address="{{addr}}"></address-card>
</parent-el>

如果任一元素更改addr(子元素可以使用他们想要的任何名称),则更改将传播到父元素,然后传播到另一元素。

如果任一绑定使用[[addr]],则更改只会从父级传播到子级。

请注意,两个子元素都应在相关属性(primaryAddress或地址)上设置notify: true,以便通知父级更改并完全设置双向绑定。

另请注意,这会侦听对象仅作为整体进行更改。要监听子属性的更改,例如addr.street父母应该添加观察者。有关详细信息,请参阅complex observers