Wie zu verwenden Ext.erstellen richtig
Kann nicht finden alle relevanten Informationen auf der sencha-Dokumentation über diese Frage :
Ist es möglich, den Anruf Ext.create(...)
mit einem parameter, die nicht davon abhängen, der name der Anwendung?
Also, wenn ich den Namen der app habe ich nicht umschreiben, dass der code-Zeile?
Normalerweise würde ich Ext.create(AppName.model.MYMODEL)
aber das ist zu gebunden an den Namen der app für mich.
Brauche immer noch Hilfe 🙂
InformationsquelleAutor Fawar | 2013-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie mit der Klasse alias
Bei der Verwendung
Ext.define
definieren Sie Ihre Klasse, können Sie einenalias
Eigenschaft. Sie haben wahrscheinlich gesehen, das auf UI-Komponenten, die Aliase verwenden wiewidget.panel
. Diese Aliase können verwendet werdenExt.create
.Können Sie den alias für eine Klasse, nachdem es erstellt wurde, mithilfe
Ext.ClassManager.setAlias
.Helfer-Funktion mit dem Namen der Anwendung
Wenn Sie nicht die Möglichkeit haben es so einzustellen, könnte man eine Funktion erstellen, die wraps
Ext.create
liefert Ihre Basis-namespace automatisch.Hier das problem, dass
Ext.application
zurück nicht das application-Objekt. Ich bin mir nicht sicher, wie Sencha Architect generiert die Anwendung code, aber Sie müssen möglicherweise zusätzliche überschreibt, damit Sie das application-Objekt abgerufen., Wie man den Namen der Anwendung zur Laufzeit
Standardmäßig, Ext JS nicht behalten ein Verweis auf das application-Objekt, wenn
Ext.application
, so müssen wir ein override um es zu tun. Ich bin mitExt.currentApp
als die Eigenschaft, um dieses Objekt zu speichern, aber Sie können es ändern, um was auch immer Sie möchten.Nun, dass Sie diese haben, können Sie auf den Namen der Anwendung, indem Sie einfach mit
Ext.currentApp.name
. Oder, wenn Sie möchten, fühlen sich wohler mit einem getter, die Sie verwenden können, die folgenden.Du hast Recht, es würde. Also habe ich ihn Hinzugefügt.
Gut dokumentiert beantworten, aber es ist länger und komplizierter als die, die ich gerade gefunden.Gibt es etwas falsch mit min, Sie scheinen zu wissen, eine Menge. Danke für Eure Hilfe!
InformationsquelleAutor Eric
Können Sie alle Klassennamen in
Ext.create
es gibt keine Namenskonvention auferlegt, solange es die Klasse bereits definiert wurde. Wenn Sie möchtenExt.create
laden Sie die richtige Datei mitExt.loader
Sie müssen zum konfigurieren der loader konform mit der Namenskonvention, die Sie brauchen.Sicher, wie Sie in der Regel definieren Sie Ihre Klassen?
Eigentlich bin ich mit Sencha Architect, so denke ich, dass meine Modelle definiert sind, automatisch durch. Ich habe gerade die Felder und die Eigenschaft, über die UI des Architekten, der nicht wirklich mit der Programmierung außer Funktion in meinem Modell. Könnte ein bisschen helfen, vermisste ich ein Wort in meinem vorherigen Kommentar habe ich noch nicht verwendet Ext.definieren, Extern Lader noch (manuell).
Tut mir Leid, ich weiß nichts über Architekten.. Vielleicht repost der Frage und markieren Sie Sie mit sencha-Architekt.
InformationsquelleAutor Amit Aviv
Den Weg, es zu tun :
Benötigen Sie einen controller, der in seiner INIT-Funktion (vor UI Einlegen/Einleiten) führen Sie die folgenden
Wo APPNAME ist eine Globale variable.
Dann, wenn Sie Ext.erstellen Sie etwas, was Sie in der Lage sein, Folgendes schreiben
Diese Weise können Sie ändern Sie app-Namen, ohne vorher zu prüfen, überall in Ihrem code ändern, jeder einzelne Ext.erstellen der neuen app-Namen.
Es auch geben Ihnen die Möglichkeit, wenn Sie sind.getApplication().setName() zu haben unendliche cache-Speicher hat, bekommt man 5/10 MB pro AppName.
InformationsquelleAutor Fawar