html5 - ¿Cómo puedo implementar MVVM con almacenamiento sin conexión y Knockout.js?
offline-storage (4)
Puede usar una biblioteca como amplify.js que puede serializar objetos a localStorage (navegador cruzado). También recurre a herramientas de almacenamiento más antiguas para navegadores más antiguos. Primero, desenvuelva los observables en un objeto JSON, luego use amplify.store para serializar el objeto y almacenarlo. Luego puede volver a sacarlo y asignarlo a un objeto observable cuando desee recuperarlo.
Puedo implementar Mvvm con Knockout.js. Pero quiero usarlo con cross browser (FF y Chrome) compatible con Html 5 de almacenamiento fuera de línea.
Quiero vincular objetos html al almacenamiento fuera de línea.
No lo he probado, pero hay un proyecto knockout.localStorage
en GitHub , que parece ser lo que estás buscando.
Con ese complemento, debe poder pasar un objeto como un segundo argumento, cuando crea su observable, lo que guarda el observable en localStorage.
De la documentación:
var viewModel = {
name: ko.observable(''James'', {persist: ''name''})
}
ko.applyBindings(viewModel);
Desarrollé una solución basada en la función de subscribe
de KnockoutJS. Toma un modelo y persiste todas las propiedades observable
.
ko.persistChanges = function (vm, prefix) {
if (prefix === undefined) {
prefix = '''';
}
for (var n in vm) {
var observable = vm[n];
var key = prefix + n;
if (ko.isObservable(observable) && !ko.isComputed(observable)) {
//track change of observable
ko.trackChange(observable, key);
//force load
observable();
}
}
};
Compruebe http://keestalkstech.com/2014/02/automatic-knockout-model-persistence-offline-with-amplify/ para el código y el ejemplo de JSFiddle.