Facebook
Twitter
Google+
Kommentare
0

ExtJs – mächtig und kompliziert: Heute, der DataStore inkl. Models

Seit einiger Zeit arbeite ich jetzt schon mit ExtJs und nutze dort Komponenten wie DataStore, Grid, ModalWindow etc.

Des Öfteren habe ich jetzt gehört, dass ExtJs zu mächtig sei und die Hälfte der Komponenten nicht genutzt werden sollten, da sie sozusagen Over Engineered sind.

Doch wann setzt man eigentlich ExtJs ein bzw. wann ist es Sinnvoll ein derartig mächtiges Tool in Sachen Javascript zu verwenden? Grundsätzlich kann man dazu nur sagen, dass ExtJs wirklich mächtig ist und nicht alle Komponenten Sinn machen, wenn man nicht gerade einen Desktop oder ähnliches erstellt.

Ein sehr großes Highlight sind die DataStores bzw. Models die in ExtJs erstellt werden können.

Ext.regModel('User', {
    fields: [
        { name: 'id', type: 'int' },
        { name: 'firstname', type: 'string' },
        { name: 'lastname', type: 'string' },
        { name: 'active', type: 'int' },
        { name: 'creationDate', type: 'date' }
    ],
    isActive: function() {
        if (this.get('active') === 1) {
            return true;
        }

        return false;
    }
});

var store = new Ext.data.Store({
    model: 'User',
    proxy: new Ext.data.MemoryProxy()
});

store.add([
    {
        id: 1,
        firstname: 'Marc',
        lastname: 'Binder',
        active: 1,
        creationDate: '2011-03-30 00:00:00'
    },
    {
        id: 1,
        firstname: 'Max',
        lastname: 'Mustermann',
        active: 0,
        creationDate: '2011-03-30 01:00:00'
    }
]);

var marc = store.getAt(0);
marc.isActive(); // true

var max = store.getAt(1);
max.isActive(); // false

Um ein derartiges Model zu erstellen benötigt man nur die Basiskomponente von ExtJs. Lediglich der Aufruf von regModel erstellt das gewünschte Objekt das man anschließend für einen DataStore verwenden kann.

Wie man im obigen Beispiel sieht können auch eigene Methoden für ein Model erstellt werden. Zusätzlich bietet ExtJs die Möglichkeit, Models zu verbinden. Nicht ganz so Abstrakt wie in Doctrine, aber immerhin.

Jeder der „mal eben schnell“ ein Projekt erstellt sollte lieber auf Tools wie jQuery oder mootools zugreifen. Für ein Projekt das viele Komponenten voraussetzt, die man mit ExtJs abdecken könnte, rate ich zu dem genannten Tool.

Über den Autor

MrBoolean

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen