2015-06-17 3 views
5

Gibt es eine Möglichkeit, Bindungen verbindlich einzurichten. Ein Beispiel für einen Anwendungsfall:Binding zwingend

var el2 = new MyElement(); 
el2.myProp = this.$.anotherElement.anotherProp 

Das wird keine Bindung einrichten, es weist nur den Wert oder das Objekt zu. Ich würde gerne einen Weg finden, etwas zu tun wie:

Möglich?

Antwort

6

Polymer 1.0 unterstützt dies im Moment nicht - wie von @kevinpschaaf in Github https://github.com/Polymer/polymer/issues/1778 erklärt.

(Kommentar von @kevinpschaaf)

Nein, wir momentan nicht unterstützen dies, außerhalb von dom-bind, die die nur Template Implementierung dass Instanz Kinder spät bindet. Sie können document.createElement ('template', 'dom-bind'), dann können Sie dynamisch Kinder mit Binding-Annotationen an seinen Inhalt, anhängen und die Bindungen werden nur ausgewertet, sobald die dom-bind an die angeschlossen ist Dokument. Sehen Sie hier Tests, die diese Nutzung der es zeigen: https://github.com/Polymer/polymer/blob/master/test/unit/dom-bind.html#L95

Beachten Sie, dass dom-bind zur Zeit nicht an äußeren Umfang erlauben zu binden, so es in benutzerdefinierten Element Vorlagen beschränkt Verwendung hat (es ist Hauptanwendungsfall ist für die Bindung zwischen Elemente im Hauptdokument), und das ist nicht wahrscheinlich kurzfristig ändern.

Wir sind viel Performance-Optimierung zu erreichen, indem Backen der Bindung Verbindungen in den Prototyp zum Zeitpunkt der Registrierung für ein Element (anstatt am Beispiel Zeit), und wir haben nicht genug der Maschine auf einfache Weise aufgebaut Erlaube Laufzeit Hinzufügen/Entfernen von Bindungen.

+0

Danke - das ist bedauerlich. Hoffentlich wird sich das ändern. – max

+0

@max Ich bin ziemlich angetan von der "Leistungsoptimierung" - es gibt andere Bibliotheken, die tun, was Sie wollen, aber sie leiden in Bezug auf die Leistung. Es ist immer ein Kompromiss - seien Sie vorsichtig, was Sie wünschen. –