Hulp in Sencha Touch

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • erwin85
  • Registratie: Juli 2002
  • Laatst online: 29-08 14:41
Goedendag,

Voor mijn afstudeerproject ben ik bezig een mobiele applicatie te ontwikkelen in het Framework Sencha Touch.
Nou is dit een vrij ingewikkeld Framework waar ook bar weinig hulp bij is te vinden.

Op dit moment probeer ik de applicatie offline support te geven. Dat ik dus gebruik maak van de offline support en local storage in HTML5.
Ik heb al een lijst met data wat uit een JSON bestand komt in de local storage kunnen krijgen. Dit werkt dus ook offline. Nu heb ik alleen ook een grafiek die ik teken in Canvas. Deze grafiek maakt gebruik van een JSON bestand met data voor op de x-as en waarden voor op de Y as. Dit JSON bestand wordt niet ingeladen in een List view of een ander component binnen Sencha Touch. De grafiek krijgt de data direct binnen via een JSON store.

Ik probeer even aan de hand van een voorbeeld te laten zien wat ik heb nu:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Data fondsen ophalen 
    app.stores.grafiek.addListener('load', function(){
        console.log("I think we are online");
        app.stores.offlineGrafiek.proxy.clear();
        
        var series = { 
            name:"Robeco funds", pointStart: Date.UTC(2010,1,1),
            data: [] 
        };
        
        this.each(function (record) {            
            var grafiek_data = app.stores.offlineGrafiek.add(record.data)[0];
            console.log(record.data);
        });
        app.stores.offlineGrafiek.sync();
        console.log(this);
        this.data.bindStore(app.stores.offlineGrafiek);
    });

In the this.each loop loopt die door elke record. Hij krijgt ook de juiste waarde terug. Wat in dit geval een object is met een datum en een waarde. Ik voeg deze objecten toe aan de data store. Dit ziet er zo uit:
JavaScript:
1
2
3
4
5
6
7
app.stores.offlineGrafiek = new Ext.data.Store({
    model: 'app.models.grafiekModel',
    proxy: {
        type: 'localstorage',
        id: 'grafiek-data'
    }
}),

Tot nu toe lijkst dit nog goed te gaan. In de Google Chrome developer zie ik dat de local storage gevuld wordt. Dan moet ik de data binden aan de store. En hier blijkt dat helemaal fout te gaan.
In het voorbeeld van mijn List view die wel werkte ziet dat er zo uit:
JavaScript:
1
app.views.select_fund.items.getAt(0).bindStore(app.stores.offlinefunds);

Hierin wordt de lijst opgehaald waarin alle items staan. Maar mijn JSON bestand staat niet in een list view. Ik heb hier this.data.bindStore geschreven, maar hier krijg ik dus een foutmelding op: Uncaught TypeError: Object [object Object] has no method 'bindStore'.

Ik hoop dat dit probleem een beetje te begrijpen is. Ik heb na veel zoeken ook op het forum van Sencha dit niet gevonden.

Graag jullie hulp.

Acties:
  • 0 Henk 'm!

  • erwin85
  • Registratie: Juli 2002
  • Laatst online: 29-08 14:41
niemand? Het zou echt fijn zijn als iemand mij uit de brand kan helpen.

Acties:
  • 0 Henk 'm!

Verwijderd

Hoewel ik (nog) geen kennis heb van Sencha Touch (of Ext in het algemeen), lijkt het mij dat de fout gewoonweg zit in het feit dat de method 'bindStore' niet bestaat in het object dat je gebruikt.

Je zegt 'this.data.bindStore', terwijl 'this' geen Ext object is, maar een JSON object (of eigenlijk "handige" string).


Ik kan je helaas niet helpen met het antwoord, daar heb ik de kennis niet voor, maar ik hoop dat mijn uitleg jou helpt om het antwoord te vinden.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:55

MueR

Admin Tweakers Discord

is niet lief

Je hebt een console.log(this); staan. Wat is die this daar precies?

Anyone who gets in between me and my morning coffee should be insecure.