Ich muss ein Formulardruckfeld validieren, das mit EmberJS an eine Eigenschaft eines Modells gebunden ist. Ich möchte, dass der Benutzer nur gültige, positive Zahlen eingeben kann.
Ich kenne jQuery.isNumber (), aber ich weiß nicht, wie ich es mit dem Feld verbinden soll. Ich habe versucht, explizite Getter / Setter-Funktionen auf der Eigenschaft des Modells mit Ember.computed (...) zu schreiben, aber es hat nicht funktioniert.
Gibt es etwas, das dem Ereignis WinForms onChanging () ähnlich ist, mit dem ich mich verbinden kann?
Es gibt eine Reihe von Möglichkeiten, um so etwas zu tun. Hier können wir das mit Bindings und Beobachtern erreichen.
Zuerst erstellen wir eine Funktion, die immer eine Zahl zurückgibt.
%Vor%Damit können wir Folgendes tun
%Vor%1) Wir erstellen eine Bindung an das Alter der Person, aber alles, was diese Bindung passiert, kann nur eine Zahl sein. Weitere Informationen finden Sie unter Ember.Binding zu / von transforms.
2) Wir beobachten den Wert des Textfelds und stellen es nur auf eine Zahl ein, wenn es sich ändert. Wenn der Benutzer '42a' eingibt, wird er sofort auf '42' zurückgesetzt. Beachten Sie, dass, obwohl '42a' für eine kurze Sekunde in der Texteingabe war, es aufgrund unserer Transformation nicht in der Lage gewesen wäre, die Bindung zu passieren.
Hier ist eine Geige, die dieses Beispiel zeigt: Ссылка
Dies ist eine aktualisierte Antwort (von @neverfox) für die neueste Ember-Version (Ember-cli 2.0). Es ist in coffeescript geschrieben und ein bisschen verändert, um dem Beispiel von beeFocus zu entsprechen ( Ссылка )
Generiere die Komponente:
ember g Komponentennummer-Feld
Ändern Sie den Blueprint-Code (app / components / number-field.coffee) in
Tags und Links javascript html validation ember.js