【问题标题】:Knockout js - Dirty Flag issue淘汰赛 js - 脏标志问题
【发布时间】:2011-11-05 03:33:26
【问题描述】:

我正在为我的视图页面使用 Knockout Js。我有一个要求,如果任何可编辑字段发生更改,我必须启用“保存”按钮,否则。这工作得很好。 我的问题是我也为每一行项目设置了复选框。这些是我的 viewModel 中的可观察项目。现在发生的情况是,当我选中或取消选中任何复选框时,Knockout 会将其视为脏项并启用我不想要的“保存”按钮。

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net-mvc knockout.js


    【解决方案1】:

    我不确定您用于脏标志的确切代码,但如果它涉及在像this 这样的dependentObservable 中使用ko.toJS,那么您可以使用一个技巧让它跳过一些可观察的。

    如果你创建一个作为函数属性的 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);  
    }
    

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

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 2014-09-18
      相关资源
      最近更新 更多