2017-01-28 3 views
8

Ich versuche Host und Ziel (und Element) im folgenden Kontext aus der Polymer Path und Polymer Data Flow Dokumentation zu verstehen.Host vs Ziel in Polymer

Betrachten Sie das folgende Diagramm:

enter image description here

nun die folgende Aussage betrachten (aus dem gleichen documentation):

„Wenn zwei Elemente in der lokalen DOM auf die Daten derselben Eigenschaft gebunden sind, erscheint von einem Element zum anderen fließen, aber dieser Fluss wird vom Wirt vermittelt. "

So weit, so gut. Dann heißt es weiter:

"Eine von einem Element vorgenommene Änderung wird an den Host weitergegeben, und der Host gibt die Änderung an das zweite Element weiter."

Der erste Teil: "Eine von einem Element vorgenommene Änderung wird an den Host weitergegeben ..." Bedeutet dies, dass eine Änderung an dem ersten Element zuerst an seinen eigenen Host weitergegeben wird? Und bedeutet "Element" tatsächlich die Dateneigenschaften des Elements?

Der zweite Teil "dann propagiert der Host die Änderung auf das zweite Element." Verbreiten wir bis zu den Dateneigenschaften des zweiten Elements? Es ist hier besonders verwirrend, da nur ein Element oder Datenobjekt zwischen den beiden ehhh Elementen geteilt wird ??

Ich denke, dass das auf seine eigenen Host vorgenommene Änderung zuerst in der Dateneigenschaft des ersten Elements geht und dann der erste Host propagiert die Änderung wieder auf das Datenelement des zweiten Elements (was so passiert, das erste Element des Daten zu sein Objekt auch).

Antwort

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

Wenn entweder Element ändert addr (die untergeordneten Elemente, was Namen wollen sie verwenden können), wird die Änderung der Mutter vermehrt werden und dann mit dem anderen Element.

Wenn stattdessen eine Bindung [[addr]] verwendet wurde, würden Änderungen nur von Parent zu Child weitergegeben.

Beachten Sie, dass beide untergeordneten Elemente notify: true für die relevante Eigenschaft (primaryAddress oder Adresse) festgelegt sein müssen, damit das übergeordnete Element über Änderungen benachrichtigt wird und die bidirektionale Bindung vollständig eingerichtet ist.

Beachten Sie auch, dass dies darauf wartet, dass sich das Objekt nur als Ganzes ändert. Um auf Änderungen an Untereigenschaften zu achten, z. addr.street der Eltern sollte einen Beobachter hinzufügen. Weitere Informationen hierzu finden Sie unter complex observers.