i ein HTML-Textfeld mit onkeypress Ereignisse habe wie Nachricht senden unterEnter-Taste aktiviert
<input type="text" data-bind="attr:{id: 'txtDim' + $data.userID, onkeypress: $root.sendMsg('#txtDim' + $data.userID, $data)}" />
ich JavaScript-Funktion geschrieben habe, um Mitteilung zu senden, während der Taste preesing eingeben wie unten:
self.sendMsg = function (id, data) {
$(id).keydown(function (e) {
if (e.which == 13) {
//method called to send message
//self.SendDIM(data);
}
});
};
In meinem Fall muss ich Enter-Taste zweimal drücken, um die Nachricht zu senden. 1: Tastendruck Anruf self.sendMsg 2: Tastendruck Anruf self.SendDIM
Aber ich muss Nachricht nur auf einem Tastendruck senden. Es kann nur in einfachem Javascript durchgeführt werden. Aber ich brauche Viewmodel Daten, also in Datenbindung angewendet. Es funktioniert also nicht gut.
Das bindet Ihre VM direkt an Ihre Benutzeroberfläche, die im Allgemeinen als Anti-Pattern betrachtet wird. –