Ich habe mit KnockoutJS gespielt und bin absolut begeistert, wie sehr es das Design aus jedem Blickwinkel vereinfacht, indem es verhindert, dass es durch die Ritzen fällt. Meine Frage ist, was ist die empfohlene "Best Practice" zum Speichern der Daten zurück auf den Server? Mein Verständnis ist, dass in einer verbundenen MVVM das erste "M" die Datenschicht ist und so die Abhängigkeitsverfolgung und Benachrichtigungen im ViewModel-Trigger direkt zurück in die Datenschicht speichert. In einer JavaScript-App werden wir getrennt und selektiv mit AJAX auf dem Server gespeichert.
Die App, in der ich sie gerade benutze, ist MVC3 und ich bekomme absolut eine "Speichern" -Aktion auf meinen Controller, klicke auf eine "Speichern" -Schaltfläche irgendwo auf meiner Seite, poste das ganze ViewModel auf diese Speichern-Aktion und dann behalte das in der Datenbank bei. Aber was ist, wenn Sie eine schnelle Bearbeitung machen und sie dann erneut speichern? Oder was ist, wenn eine Schaltfläche zum Speichern nicht in den Designfluss passt? Stattdessen möchten Sie jedes Mal, wenn eine Änderung an dem Formular ohne Speichern-Schaltfläche vorgenommen wird, zu der Aktion posten? Die Ideen, die ich herumgeworfen habe, sind:
Ich bin zuversichtlich, dass es da draußen einige gute Ideen gibt, an die ich nicht gedacht habe. Es wäre genial, in der Lage zu sein, alles deklarativ zu binden UND trotzdem effizient zu speichern .
Die einzige andere Sache, die mir einfällt, ist Abonnieren . Als ich anfing, Ihren Beitrag zu lesen, dachte ich Flaggen mit Grep.
Bearbeiten: Besser noch, ko.utils.compareArrays
sieht vielversprechend aus.
Hier ist ein funktionierendes Beispiel ..
Sie müssen nur noch Änderungen an den Werten der beibehaltenen Werte erkennen. Du bist aber gut unterwegs.
Ich bin gerade von Mix11 zurückgekommen, wo ich diese Sitzung über Knockout.js besucht habe. Es könnte sich lohnen, Steve Sanderson dabei zuzusehen, wie er eine vollständige CRUD-Demo erstellt.
Sie können das Mapping-Plugin für Knockout auschecken, damit Sie Knockout von einem JSON-Array laden können. Wenn es nicht zu groß ist, speichern Sie das Array auf einem Zeitgeber (oder nach einer Änderung) auf dem Server herunter. Hoffe, das hilft, Entschuldigung, wenn Sie das bereits wussten.
Tags und Links knockout.js mvvm ajax save