我正在使用Ryan Niemeyer's 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。
答案 0 :(得分: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;
}
}
};
然后,在构建脏物品清单时,您需要检查它,如果这是您需要的物品。