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:

  1. Verlassen store:'Dataset' im Hinblick
  2. Hinzufügen storeId : "Dataset" zu speichern, so kann es gelöst werden, indem der StoreManager
  3. Hinzufügen stores: ['Dataset'] was verursacht die Erstellung von majestic.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

Schreibe einen Kommentar