フォームを使用してユーザーがフィールドを変更すると、ユーザーが送信ボタンをクリックするのではなく、検証と更新がすぐにコミットされるようなWebページを作成しようとしています。私はKnockout.jsとマッピングプラグインを使用しています。元のフィールドごとに計算フィールドを作成することでこれを実現できますが、このような作業は単純で愚かです。Knockoutjsを使用した即時更新バックエンド
答えて
変更を購読するには、ko.toJS()メソッドを使用できます。実際には、オブジェクトグラフを通り抜けてオブザーバブルをラップすることができます。 ko.computedの使用時にはおそらく知っているように、observablesフィールドのすべての読み取りにサブスクライブし、すべての変更について再評価します。したがって、次のようなコードを使用する場合:
ko.computed(function() {
ko.toJS(viewModel);
// update data on server
});
また、このコードは初期化直後にサーバー上のデータを更新することに注意してください。簡単に回避することができます。この例をチェックアウトしてください:http://jsfiddle.net/UAxXa/embedded/result/
また、変更されたデータのみをサーバーに送信したいと思うかもしれません。あなたはko.editbalesプラグイン(https://github.com/romanych/ko.editables)といくつかのKOアンダーフード知識を組み込むことができます。このサンプルをチェックアウトしてください:http://jsfiddle.net/romanych/RKn5k/
私はそれがあなたを助けることを願っています。
複数のオプションがありますが、単一のリスナーが必要な場合は、変更トラッカーの作成に使用したのと同じコードを使用することをおすすめします。観察可能な変化を聞くだけです。その約19行のコード。これを取得し、変更トラッキングに使用する代わりに、変更が発生したときに変更を保存するメソッドでワイヤリングするだけです。
- NuGet http://nuget.org/packages/Knockout.ChangeTracker
- CodePlexにhttp://kochangetracker.codeplex.com/
セットアップ変更の追跡するために、あなたのビューモデルに、このトラッカーのプロパティを追加します。
viewModel.tracker = new ChangeTracker(viewModel);
フックをあなたのビューにこれらの変更が発生したときを決定します:
viewModel.tracker().somethingHasChanged();
あなたのビューモデルにフックこれを使用すると、機能の状態をリセットしたい(例:ロード、セーブ):
viewModel.tracker().markCurrentStateAsClean;
必要に応じて、あなたも、状態の追跡のために独自のハッシュ関数を渡すことができます。
- 1. Silverlightで即時更新
- 2. UIMenuControllerを即時更新する
- 3. 即時の非同期テーブルビュー更新
- 4. 即時更新のデータバインドを適用する方法
- 5. knockoutjsを使用したオンロードバインディング?
- 6. mysqlバックエンド用のnode-orm2を使用したデータベース更新の問題
- 7. テンプレートのアフターレンダリングを使用したKnockoutJSとマッピングのプラグイン固有ロジックの更新
- 8. KnockOutJsオブジェクトがUIを更新しない
- 9. アダプタからリストビューを即時に更新する
- 10. 非表示のフィールド値を即時更新
- 11. KnockoutJS:マッピングを使用してviewModelにデータを更新/挿入します。
- 12. フラスコ:レコードは即時に更新されません
- 13. Android図面/絵画アプリの即時更新?
- 14. バックエンドの更新時にフロントエンドにデータを送信
- 15. EF 4.1を使用した更新時の例外
- 16. XDCRを使用した同時更新Couchbase
- 17. DevExpress.XtraBars.BarEditItemの即時イベントが変更されました
- 18. ミドルウェアを使用したカスタム認証バックエンド
- 19. 即時通知
- 20. 新しいユーザーdjangoを使用したAndroidアプリの登録と認証バックエンド
- 21. RPMを使用したインストーラの更新
- 22. テンプレート列を使用したDataGrid更新
- 23. 更新クエリを使用した疑問
- 24. Linqクエリを使用した更新
- 25. 更新日時私はデータベースに日付を更新したい
- 26. anglejsバックエンド変更時の自動リロード
- 27. KnockoutJSネストされた配列のマッピング更新
- 28. ウェブサイトはどのようにしてAJAXを使用してコンテンツを即座に更新しますか?
- 29. 更新を使用して列を増やすまたは更新時にトリガーを作成する - mysql
- 30. UIDatePicker即時保存時間