Die Winkel Dokumentation heißt es:
„In der Welt der Angular 2 ist die einzige Rolle von Attributen Element initialisieren und staatliche Direktive Wenn wir Daten zu binden, sind wir ausschließlich mit dem Element handelt. und Direktive Eigenschaften und Ereignisse. Attribute effektiv verschwinden. "
also der richtige Weg, die Bindung an die Arbeit zu bekommen, ist [(user-name)]
[(userName)]
und nicht zu schreiben.
Obwohl dies zu "funktionieren" scheint, funktioniert es nur von Angular zu Polymer, nicht umgekehrt. Blind zu Änderungen an der Webkomponente machen.
Ich habe ein Beispiel unter Verwendung von Code mit Zweiweg-Datenbindung unter Verwendung von Methoden, die auf der Dokumentation beschrieben hergestellt (ich hoffe, dass sie die Integration erleichtern, um so die vorformulierten zu reduzieren):
<hello-name [userName]="userName" (user-name-changed)="userName=$event.target.userName" id="hero"></hello-name>
http://plnkr.co/edit/dwd1x3o6RgyOxwNjyIBx?p=preview
im Beispiel habe ich eine Schaltfläche hinzugefügt, die die webcomponent Eigenschaft ändert, und Sie können überprüfen, wie es das Winkelmodell aktualisiert, auch, wenn Sie die ID ändern "hero"
:
let element = document.getElementById("hero");
zu:
let element = document.getElementById("hero0");
Sie können überprüfen, wie die vorformulierten benötigt wird. In diesem Fall hat der Knoten nicht die (user-name-changed)="userName=$event.target.userName"
nur [(userName)]="userName"
, wenn Sie die Eigenschaft der Webkomponente über Javascript aktualisieren, wird der eckige Kontext nie aktualisiert.
Dies ist genau die richtige Lösung, und Ihr Plünderer hat eine großartige Arbeit geleistet, die ein- und zweiseitigen Bindungsszenarien zu illustrieren! Danke für die Hilfe! –