Umzug von Polymer
v0.5 zu v1.0 der Registrierungsprozess von Polymer elements
scheint anders zu sein. Vor Polymer v1.0
konnten wir JavaScript-Code von index.html
ausführen, um alle benötigten Objekte in unserem Polymer elements
zu initialisieren. Dies ist ein sehr wichtiges Detail, da die data-binding
in Polymer
ONLY korrekt funktioniert, wenn die gebundenen Objekte initialisiert werden FIRST. Das bedeutet folgendes:JavaScript Initialisierung vor Polymer Elemente Registrierung
Zum Beispiel, wenn Sie ein Objekt in Ihrem Polymer element
mit {{ }}
oder [[ ]]
binden möchten, das Objekt muss vor der Polymer element
Registrierung definiert werden! Siehe:
<dom-module id="my-elem">
<template>
<div>This should be my bounded object: <b>{{obj.name}}</b></div>
</template>
<script>
Polymer({
is: 'my-elem',
ready: function() {
// Global initialized object!!!
// app.obj ==> app.obj = { name: 'Great', info: 'Additional info!!!' };
this.obj = app.obj;
}
...
</script>
</dom-module>
Das Problem, das ist, wenn die Polymer element
VOR registriert ist app.obj
initialisiert (im Beispiel oben this.obj
ist undefined
zum Zeitpunkt der Polymer element
Registrierung) dann NO Benachrichtigung ausgeführt wird und kein Update zur Verfügung gestellt, auch wenn app.obj
ist NICHTundefined
später.
Also in Fällen wie diesem müssen wir zuerst alle gebundenen Objekte initialisieren, bevor wir sie mit {{ }}
oder [[ ]]
verwenden können.
Ist unser Ansatz völlig falsch ??? Irgendwelche Vorschläge???
Ich bin mit einem sehr ähnlichen Problem im Moment zu kämpfen. Haben Sie einen akzeptablen Weg gefunden, dies zu handhaben? – Christof