Es kann vorkommen, dass wir ein benutzerdefiniertes Element dynamisch in einen Kontext einfügen müssen. Dann:Datenbindung in einem dynamisch eingefügten Polymerelement
Das eingesetzte Polymer könnte einige Eigenschaften erhalten, um eine andere Eigenschaft innerhalb des Kontext gebunden, so kann es entsprechend ändern.
Bei Polymer 0.5 konnten wir PathObserver verwenden, um eine Eigenschaft an eine Context-Eigenschaft für eine kürzlich hinzugefügte Komponente zu binden. Jedoch habe ich nicht einen Workaround oder Äquivalent bei Polymer 1.0 gefunden.
Ich habe ein Beispiel für 0.5 und genau das gleiche für 1.0 erstellt. Siehe unten den Code des Polymers, dass es die Injektion macht. Sie können auch die vollständigen Plunker Beispiele für Klarheit sehen.
Ej 0,5:
<polymer-element name="main-context">
<template>
<one-element foo="{{foo}}"></one-element>
<div id="dynamic">
</div>
</template>
<script>
Polymer({
domReady: function() {
// injecting component into polymer and binding foo via PathObserver
var el = document.createElement("another-element");
el.bind("foo", new PathObserver(this,"foo"));
this.$.dynamic.appendChild(el);
}
});
</script>
</polymer-element>
Bitte, sehen Sie die volle plunkr Beispiel: http://plnkr.co/edit/2Aj3LcGP1t42xo1eq5V6?p=preview
Ej 1,0:
<dom-module id="main-context">
<template>
<one-element foo="{{foo}}"></one-element>
<div id="dynamic">
</div>
</template>
</dom-module>
<script>
Polymer({
is: "main-context",
ready: function() {
// injecting component into polymer and binding foo via PathObserver
var el = document.createElement("another-element");
// FIXME, there's no a path observer: el.bind("foo", new PathObserver(this,"foo"));
this.$.dynamic.appendChild(el);
}
});
</script>
Bitte, sehen Sie die volle plunkr Beispiel: http://plnkr.co/edit/K463dqEqduNH10AqSzhp?p=preview
Kennen Sie Workarounds oder Äquivalente zu Polymer 1.0?
Danke, war es so nützlich :) – recluising
Dieses etwas mit Array-Spleißstellen seltsam bekommt und wenn Änderungen Objekt .. – pdelanauze