Backbone-Sammlung aus Json-Datei und Cache im lokalen Speicher
Ich bin relativ neu in der Backbone-Bibliothek. Ich versuche, eine mobile Anwendung zu erstellen, die auf Backbone + requirejs + jquery-mobile basiert. Ich kann meine Sammlung mit einer vorhandenen lokalen json-Datei füllen. (in der Zukunft kann von einem Remote-Server kommen). Jetzt versuche ich, diese Sammlung nur einmal aufzurufen und sie dann in localStorage zum Lesen zu speichern. dafür versuche ich diesen Adapter zu benutzen (https://github.com/jeromegn/Backbone.localStorage) aber ich verstehe nicht wie.
Beispielcode// models
define([
'underscore',
'backbone'
], function(_, Backbone) {
var AzModel = Backbone.Model.extend({
defaults: {
item: '',
img:"img/gi.jpg"
},
initialize: function(){
}
});
return AzModel;
});
// Collection
define(['jquery', 'underscore', 'backbone', 'models/az'], function($, _, Backbone, AzModel) {
var AzCollection = Backbone.Collection.extend({
localStorage: new Backbone.LocalStorage("AzStore"), // Unique name within your app.
url : "json/azlist.json",
model : AzModel
parse : function(response) {
return response;
}
});
return AzCollection;
});
define(['jquery', 'underscore', 'backbone', 'collections/azlist', 'text!templates/karate/az.html'], function($, _, Backbone, AzList, AzViewTemplate) {
var AzView = Backbone.View.extend({
id:"az",
initialize: function() {
this.collection = new AzList();
var self = this;
this.collection.fetch().done(function() {
//alert("done")
self.render();
});
},
render : function() {
var data = this.collection;
if (data.length == 0) {
// Show's the jQuery Mobile loading icon
$.mobile.loading("show");
} else {
$.mobile.loading("hide");
console.log(data.toJSON());
this.$el.html(_.template(AzViewTemplate, {data:data.toJSON()}));
// create jqueryui
$(document).trigger("create");
}
return this;
}
});
return AzView;
});
Kann mir jemand den Weg weisen.