1

Kendo Grid で双方向バインディングを作成しようとしています。Kendo Grid の編集機能を使用し、View Model に Computed Observable を使用する場合、2 ウェイ バインディングが不可欠になります。私が見つけることができる唯一の解決策は次のとおりです。

バッチ編集を使用した Knockout-Kendo Grid でビューモデルが更新されない

このサンプルでは、​​KO.computed フィールドを使用して上記のソリューションに基づいてフィードルを作成しました

ko.computed フィールドを使用した剣道グリッド

同期ボタンをクリックするまで、編集されたデータはビューモデルを更新しません。すぐに更新する方法は?

ここに私の解決策があります:

var grid = $("#grid").data("kendoGrid");
grid.bind("save", grid_save);
grid_save = function (e) {
        if (e.values.first) { // Check if the first name changed
           if (e.values.first != e.model.first) {// Compare with previous value
                var people = self.people() || []; // Navigate through KO view model
                $.each(people, function () {
                    if (this.first() == e.model.first) {
                        this.first(e.values.first); // Update KO View Model
                    }
                });
            }
        }

これは、Ko.computed がすぐに更新される剣道グリッドのフィドルです。

グリッドの保存イベントを使用して、ビュー モデルをすぐに更新しようとしています。これは、セルが変更されるたびにこのイベントが発生することを意味します。少し醜く見えます。他のエレガントなソリューションはありますか?

4

1 に答える 1