如何在Knockout中绑定后重新绑定?

时间:2018-06-08 10:20:19

标签: knockout.js

我想知道在knockout.js重新绑定。

首先,我已经绑定了"编辑"中的数据。 但是我想点击它来重置数据。

如果我重置数据,我必须绑定"编辑"

我如何重新绑定?不是ko.cleanNode。



var initData={ 
    price: ko.observable("0"),
    volume: ko.observable("0")
};

ko.applyBindings(initData, document.getElementById("edit"));

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<div id="edit">
  price : <input data-bind="value: price" />
  volume : <input data-bind="value: volume" />

<div><a href="#" data-bind="click: InitDataClick">Init</a></div>
</div>
&#13;
&#13;
&#13;

};

1 个答案:

答案 0 :(得分:1)

  • InitDataClick添加到您applyBindings
  • 的viewmodel
  • 在方法内部,通过使用初始值
  • 调用它们来重置initData的两个属性
  • 使用with绑定
  • 确保您的输入绑定到数据对象

&#13;
&#13;
var initData = { 
  price: ko.observable("0"),
  volume: ko.observable("0")
};

ko.applyBindings({
  initData,
  InitDataClick: function() {
    initData.price("0");
    initData.volume("0");
  }
});
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<div data-bind="with: initData">
  price : <input data-bind="value: price" />
  volume : <input data-bind="value: volume" />
</div>
<div><a href="#" data-bind="click: InitDataClick">Init</a></div>
&#13;
&#13;
&#13;