如何更新完整的视图模型?
- 在页面加载我得到一个模型转换,使用
ko.mapping.fromJS(myObject)
到一个视图模型。 - 如果用户点击一个按钮,我想从服务器获取更新的数据
- 现在,我想申请theese更新
如果我使用ko.applyBindings(viewModel);
它完美地更新UI。 但它再次添加相同的事件。 因此,如果用户点击该按钮时,会触发该事件两次,第三等。
题
什么是更新我的完整视图模型的好方法。 也许我删除绑定,然后再次申请呢? (这该怎么做)。
样品
var viewModel;
function update()
{
$.ajax({
url: '...',
type: "GET",
statusCode: {
200: function (data) {
viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
}
}
});
}
// first call after page load
update();
// user click
$("#myButton").click(function() {
update();
});
更新
史蒂夫Greatrex你能发表您的自定义绑定实现?
ko.bindingHandlers.domBinding = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
viewModel.domElement = element;
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
viewModel.domElement = element;
},
};