KnockoutJS - Atualizar o plugin ViewModel / Mapping
Como posso atualizar o viewModel completo?No carregamento da página eu recebo um modelo e converter isso usando
ko.mapping.fromJS(myObject)
para um viewModel.Se o usuário clicar em um botão, eu quero obter dados atualizados do servidorAgora eu quero aplicar estas atualizaçõesSe eu usoko.applyBindings(viewModel);
Atualiza o ui perfeitamente. Mas adiciona os mesmos eventos novamente. Portanto, se o usuário clicar no botão, o evento será acionado duas vezes, terceiro e assim por diante.
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();
});
AtualizarSteve Greatrex Você poderia postar sua implementação de ligação personalizada?
ko.bindingHandlers.domBinding = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
viewModel.domElement = element;
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
viewModel.domElement = element;
},
};