UPDATE: Es sieht so aus, als wäre dies ein bekannter Fehler: Ссылка
Ich verlasse es hier zu Referenz- / Durchsuchungszwecken.
input-mask.ts (Der vollständige Code ist hier zu sehen)
> %Vor%carrier.html
%Vor%UPDATE: Um diesen Fehler zu umgehen, wechseln Sie zu
unmasked-value.two-way
und die Bindung funktioniert.
carrier.ts
%Vor% Die Daten scheinen in die Variable @bindable
zu fließen. Wenn sich die Maske ändert, wird der Wert im benutzerdefinierten Attribut geändert.
Aber es scheint nicht zu fließen, wenn Änderungen innerhalb des custom-Attributs vorgenommen werden.
Beispielszenario:
Nachdem ich den Wert im Eingabefeld bearbeitet und die Eingabe beendet habe, wird das focusout
-Ereignis ausgelöst und die Konsolenanweisung, die angibt, dass der unmaskierte Wert innerhalb des benutzerdefinierten Attributs aktualisiert wurde, druckt:
unmaskedValue wurde innerhalb des benutzerdefinierten Attributs
aktualisiert
Aber (wenn die Eingabe den Fokus verliert), wird die Konsolenanweisung, die besagt, dass der airbill
in der Datei carrier.ts aktualisiert wurde, nicht ausgelöst, wenn ich das Eingabefeld verlasse:
Das feuert nicht:
console.log ('Airbill war gesetzt!');
Dies scheint mir zu zeigen, dass die Bindung nicht wirklich zweiseitig ist.
Wie kann ich diese Bindung in beide Richtungen herstellen? Wenn ich also unmaskedValue
innerhalb des custom-Attributs aktualisiere, wird der gebundene Wert im Ansichtsmodell aktualisiert?
Hinweis: Als Workaround konnte ich unmasked-value.bind
als Methodenaufruf ( on-unmasked-value-changed.call="onUnmaskedValueChanged($event)
) ändern und den Wert in dieser Methode aktualisieren. Also brauche ich das nicht zu arbeiten. Aber ich würde gerne wissen, ob es für zukünftige Verwendung möglich ist.
Dieser bekannte Fehler wurde am 15. März 2016 behoben und geschlossen Ссылка
Tags und Links javascript aurelia aurelia-binding