淘汰赛将视图模型重置为原始数据

hys*_*yzq 6 knockout.js

将淘汰赛视图模型重置回原始数据的最佳方法是什么?

如果原始数据json没有改变,在我对observable做了一些改变后,我该如何设置回来?就像刷新页面一样。

hen*_*der 3

我认为“刷新”你的 viewModel 是不好的做法。你可以像这样刷新它:

ko.cleanNode(document.getElementById("element-id"));
ko.applyBindings(yourViewModel, document.getElementById("element-id"));
Run Code Online (Sandbox Code Playgroud)

但我认为在视图模型上有一个名为“重置”的方法会更干净,它将您的可观察值设置回初始状态。也许是这样的:

function MyViewModel() {
  this.something = ko.observable("default value");
  this.somethingElse = ko.observable(0):

  this.reset = function() {
    this.something("default value");
    this.somethingElse(0);
  }
}
Run Code Online (Sandbox Code Playgroud)