Sencha Touch DataView nicht zeigen Gegenstände aus dem Shop
Bin ich mit Sencha touch 2. Ich habe lagern, dass die Last aus den bestehenden js-Objekt:
Ext.define('majestic.store.Dataset', {
extend : 'Ext.data.Store',
requires : [
'majestic.model.Dataset',
'majestic.util.config.ConfigurationManager'
],
config : {
model : 'majestic.model.Dataset',
type: 'memory',
reader: 'json',
autoLoad : true,
proxy: {
type: 'memory',
reader: {
type: 'json',
rootProperty : 'datasets'
}
}
},
constructor: function(config) {
this.callParent(arguments);
this.applyData(majestic.util.config.ConfigurationManager.getConfig());
}
});
Modell:
Ext.define('majestic.model.Dataset', {
extend : 'Ext.data.Model',
config : {
fields : [
'title'
],
associations: [
{type: 'hasMany', model: 'Layer', name: 'layers'}
]
}
});
Und anzeigen:
Ext.define('majestic.view.LayerList', {
requires: ['majestic.store.Dataset'],
extend: 'Ext.dataview.List',
config:{
store: 'Dataset',
itemTpl: '<div>{id} is {title}</div>',
itemSelector: "div"
}
});
Nach einem Blick auf Ansicht Daten in Sencha touch die ich Hinzugefügt habe, autoLoad und itemSelector, noch kein Glück.
Obwohl laufen
new majestic.store.Dataset().each(function(i) {console.log(i)});
Ausgänge Liste der Objekte mit Daten gefüllt Attribute.
UPDATE
Stimme ich mit @fbrandel, die erste option ist, wie es funktionieren sollte, aber nach dem Lesen der ST-Quelle, die ich habe herausgefunden, dass der store parameter "dataview" wird interpretiert als:
- - Objekt zu speichern
- json-store-notation wie im ersten Beispiel hier
- Namen bereits angelegt-store, die gelöst werden können, mit StoreManager.lookup
So landete ich mit:
- Verlassen
store:'Dataset'
im Hinblick - Hinzufügen
storeId : "Dataset"
zu speichern, so kann es gelöst werden, indem der StoreManager - Hinzufügen
stores: ['Dataset']
was verursacht die Erstellung vonmajestic.store.Dataset
und registrieren es in der StoreManager
P. S. Es auch getan werden könnte, mit this.setStore(new majestic.store.Dataset())
im initialization
- Methode für GridView, aber ich bevorzuge deklarative Art und Weise, wo möglich
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind einige Vorschläge:
Fügen Sie die store-Abhängigkeit zu Ihr app.js wie diese:
Statt übergeben Sie eine Zeichenfolge an die store-Eigenschaft, übergeben Sie eine Instanz:
Option #1 zu sein scheint die offensichtlichste Art und Weise, wie es sollte Arbeit. Wenn nicht, könnte dies ein bug in ST2.
Vielleicht ist Ihr fehlen ein id-Feld
Ich bin jedenfalls Gebäudes, in dem Architekten mit kein Glück, aber scheint ein ganz anderes problem. Ich werde Folgen Sie dem tutorial im Architekten (bauen Sie Ihre erste mobile app) und vielleicht auch Einsicht.