Knockout js - 肮脏的旗帜问题

ann*_*Dev 2 asp.net-mvc knockout.js

我在我的视图页面使用Knockout Js.我有一个要求,如果任何可编辑字段更改,我必须启用保存按钮否则.这很好用.我的问题是我的每一行都有复选框.这些是我的viewModel中的可观察项.现在发生的是当我选中或取消选中任何复选框时,Knockout将其视为Dirty项并启用我不想要的Save按钮.

我怎么解决这个问题?

RP *_*yer 6

我不知道,你正在使用一个肮脏的标志确切的代码,但如果它包括使用ko.toJS在像dependentObservable 这样,再有就是你可以用它来把它跳过一些观测一招.

如果创建一个属性为函数的observable,则ko.toJS无法找到它.

这是两个例子(someFlaganotherFlag):

function Item(id, name) {
    this.id = ko.observable(id);
    //create a sub-observable that the dirty flag won't find
    this.id.someFlag = ko.observable(false);
    this.name = ko.observable(name);
    this.dirtyFlag = new ko.dirtyFlag(this);

    //or similarly, place an observable on a plain ol' function
    this.forgetAboutMe = function() { };
    this.forgetAboutMe.anotherFlag = ko.observable(false);  
}
Run Code Online (Sandbox Code Playgroud)

此处示例:http://jsfiddle.net/rniemeyer/vGU88/