Je souhaite établir une communication entre un parent enfant et un élément Polymer.Communication de polymère entre les éléments
Voici mon index.html
<proto-receiver data="my-coded-data">
<proto-element data="my-child-coded-Data"></proto-element>
</proto-receiver>
Les deux éléments ont leurs "données" propriété
properties: {
data: {
value: 'my-data',
notify: true,
}
},
Dans proto-récepteur, qui est le parent mettre à jour "données" par manipulation simple clic
<template>
<span on-tap="onClick">proto receiver: {{data}}</span>
<content></content>
</template>
onClick: function() {
this.data = 'my-new-data';
},
Je souhaite que la modification soit également propagée à l'élément enfant, car elle mentio nd here. Je l'ai fait en passant un setter dans mon élément enfant et l'ai appelé comme ceci. Ce qui est, je suppose, pas la façon dont cela devrait être fait.
Polymer.Base.$$('body').querySelector('proto-element').setData(this.data);
Ce que je fais mal
Merci
MISE À JOUR:
Pour ceux qui viennent ici la bonne façon de le faire est en utilisant des événements.
this.fire('kick', {kicked: true});
Polymer 2.x (javascript simples)
this.dispatchEvent(new CustomEvent('kick', {detail: {kicked: true}}));
Dans les deux cas, le récepteur doit mettre en œuvre la addEventListener régulière
document.querySelector('x-custom').addEventListener('kick', function (e) {
console.log(e.detail.kicked); // true
})
Probablement vous voulez 'Polymer.dom (this) .querySelector ('proto-element'). setData (this.data);'. Cependant, si vos objets 'proto- *' sont eux-mêmes dans un modèle Polymer, vous pouvez utiliser la liaison de données pour le faire pour vous. –
Merci Scott. Voulez-vous dire que les modifications ne sont pas propagées en raison de l'étiquette ? Mettre efficacement mon élément enfant directement à l'intérieur du modèle Polymer parent fonctionne très bien. Il semble que le même problème est mentionné [ici] (http://stackoverflow.com/questions/26369519/bind-data-to-content-element-in-polymer) –
aiqency
'' modifie le contexte _rendering_ mais il ne le fait pas changer les relations d'arbre réelles. Dans votre exemple, 'proto-element' reste un enfant direct de' proto-receiver' indépendamment de ''. Ce que je voulais dire, c'est que si les deux éléments sont eux-mêmes dans un modèle, vous pouvez les lier directement: ' ' –