Salvamento automático fácil com o Dirty Flag Knockout.js

Reduza o número de interações do usuário necessárias em suas páginas, implementando o salvamento automático por meio de uma sinalização incorreta no modelo de domínio do cliente.

Isso pode ser feito usando knockout.js:

função janela onload:

//Handle dirty/changed domain items
templateAppViewModel
.dirtyTemplates = ko.dependentObservable(function () {
return ko.utils.arrayFilter(this.templateResults(),
function (template) {
return template.dirtyFlag.isDirty();
});}, templateAppViewModel);

//Create the view model dirty flag
templateAppViewModel
.isDirty = ko.dependentObservable(function () {
return this.dirtyTemplates().length > 0;
}, templateAppViewModel);

//subscribe to viewmodel isDirty event
templateAppViewModel
.isDirty.subscribe(function (newValue) {
if (newValue) {
//Save the dirty values
viewModelHelpers
.save();
}
});


//Initialize Knockout.js
ko
.applyBindings(templateAppViewModel);

Objeto de domínio do lado do cliente:

function Template(){
this.dirtyFlag = new ko.dirtyFlag(this);
}

JS Fiddle: http://jsfiddle.net/rniemeyer/dtpfv/

Código e ideia de:
http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html