2

Ryan Niemeyer の Dirty Flagを使用しています。彼のメソッドの例は、このjsFiddleで見ることができます。

彼はViewModelにdirtyItemsメソッドを持っています

this.dirtyItems = ko.computed(function() {
  return ko.utils.arrayFilter(this.items(), function(item) {
    return item.dirtyFlag.isDirty();
  });
}, this);

しかし、彼のdirtyItemsメソッドを私のデータで動作させることができないようです.最大の違いは、マッピングプラグインを使用していることです. 私が試したことはすべて空に戻ります。

これが私の実装のjsFiddleです。

4

1 に答える 1

3

次のように、dirtyFlag を ProfilePropertyValue に追加できます。

var mappingOptions = {
    ProfilePropertyValue: {
        create: function (mappingoptions) {
            var data = mappingoptions.data;
            data.ProfilePropertyValue = data.ProfilePropertyValue || {
                "ID": null,
                    "Checkbox": ko.observable(false)
            };

            var result = ko.mapping.fromJS(data);
            result.dirtyFlag = ko.dirtyFlag(result);

            return result;
        }
    }
};

次に、ダーティ アイテムのリストを作成するときに、それが必要な場合はチェックする必要があります。

サンプル: http://jsfiddle.net/rniemeyer/7DGfs/

于 2013-03-12T21:42:58.643 に答える