Sencha Touch - Abhängigkeiten
In Sencha Touch sind bestimmte Möglichkeiten definiert, Abhängigkeiten zu deklarieren, eine innerhalb der Anwendung und die andere innerhalb der Klassen.
Schauen wir uns die verschiedenen Möglichkeiten an, Abhängigkeiten zu definieren.
Abhängigkeiten auf Anwendungsebene
Hier deklarieren wir alle Abhängigkeiten, wenn wir Ext.application erstellen.
Ext.application({
name: 'MyApp',
views: ['StudentsView'],
models: ['StudentsModel'],
controllers: ['StudentsController'],
stores: ['StudentsStore'],
profiles: ['Phone', 'Tablet']
});
Wenn die Anwendung geladen wird, werden jetzt alle Abhängigkeiten gleichzeitig geladen. Der Pfad der anderen Dateien lautet -
- MyApp.views.StudentsView
- MyApp.models.StudentsModel
- MyApp.stores.StudentsStore usw.
Die obige Art der Deklaration lädt nicht nur die Datei, sondern entscheidet auch, welches Profil als aktiv beibehalten werden soll. Nach dem Laden des Controllers wird sichergestellt, dass dieser instanziiert wird. Sobald die Geschäfte geladen sind, werden sie instanziiert und es wird eine ID bereitgestellt, sofern diese nicht bereits angegeben wurde.
Profilspezifische Abhängigkeiten
Wenn wir Profile in einer Anwendung verwenden, besteht möglicherweise die Möglichkeit, dass nur für ein bestimmtes Profil nur wenige Funktionen erforderlich sind.
Profilspezifische Abhängigkeiten werden in den Profilen selbst anstelle der Deklaration auf Anwendungsebene deklariert.
Ext.define('MyApp.profile.Tablet', {
extend: 'Ext.app.Profile', config: {
views: ['StudentView'], controllers: ['StudentController'], models: ['StudentModel']
}
});
Abhängigkeiten werden geladen, unabhängig davon, ob das Profil aktiv ist oder nicht. Basierend auf dem aktiven Profil erfolgt jedoch eine weitere Verarbeitung, z. B. das Instanziieren von Controllern und Speichern.
Verschachtelte Abhängigkeiten
Wenn wir eine größere Anwendung haben, haben wir mehrere Controller, Modelle, Ansichten und Speicher.
Bei größeren Anwendungen ist es immer gut, die Modularität beizubehalten. Dazu können wir Unterordner definieren und beim Deklarieren von Abhängigkeiten den Namen des Unterordners zum Deklarieren verwenden.
Ext.application({
name: 'MyApp',
controllers: ['Controller', 'nested.NewController'],
views: ['class.Cview', 'SView']
});
Im obigen Fall werden folgende Dateien geladen:
- MyApp.controllers.Controller
- MyApp.controllers.nested.NewController
- MyApp.Views.Sview
- MyApp.Views.class.Cview
Externe Abhängigkeiten
Wir können die Abhängigkeiten außerhalb der Anwendung angeben, indem wir vollständig qualifizierte Namen der Klassen als - angeben.
Ext.Loader.setPath({
'Class': 'Class'
});
Ext.application({
views: ['Class.view.LoginForm', 'Welcome'],
controllers: ['Class.controller.Sessions', 'Main'],
models: ['Class.model.User']
});
Im obigen Fall werden folgende Dateien geladen:
- Class/view/LoginForm.js
- Class/controller/Sessions.js
- Class/model/User.js
- app/view/Welcome.js
- app/controller/Main.js