Knockout JS - 如何在单击“取消”按钮时取消跟踪更改?

时间:2017-03-23 03:07:42

标签: javascript knockout.js

我有以下代码。选择预设后,将触发以下操作。

  • 分配selectedPreset
  • 分配selectedField1
  • 分配selectedCategories

    self.viewSelectedPreset = function (_selectedPreset) {
        self.editMode(true);
    
        self.selectedPreset(_selectedPreset);
        self.selectedField1(_selectedPreset.Field1);
        self.selectedCategories(_selectedPreset.CategoryC);
    
    };
    

我的取消按钮有以下代码,我取消分配

  • selectedPreset
  • selectedField1
  • selectedCategories

    self.cancelUpdatePreset = function () {
        self.editMode(false);
    
        self.selectedPreset({});
        self.selectedField1([]);
        self.selectedCategories([]);
    
    };
    

category is checked image
问题是当用户选择类别1时,似乎selectedPreset.CategoryC也会更新,并且始终会跟踪更改。

如何修复此取消按钮问题?
我错过了什么?
大家提前谢谢。

jsFiddle sample

1 个答案:

答案 0 :(得分:0)

正如Martinez指出的那样,我已经修复了取消按钮问题。

// Cancel changes
self.cancelUpdatePreset = function () {
    self.editMode(false);

    self.selectedPreset(null);
    self.PresetInEditing(null);

    //console.info("cancelUpdatePreset", ko.toJS(self.PresetInEditing()));
};

参考:knockmeout

已完成jsFiddle