Ich habe eine Sencha Touch-Anwendung, für die ich eine globale Variable festlegen möchte. EDIT: Weitere Klarstellung, ich muss auf diese globale Variable in allen Ansichten zugreifen können.Anwendungsvariable kann nicht in Sencha Touch Anwendung überschrieben werden
Ich setze die Variable auf die Anwendung auf ihren Standardwert und überschreibe sie dann während des Starts. Es wird jedoch nicht überschrieben.
Ext.application({
name: 'hd',
isAuth: 'false',
launch: function() {
hd.app.isAuth = 'true';
Ext.Msg.alert(hd.app.isAuth); //This always returns 'false'
}
});
Ich bekomme keine Konsolenfehler und ich kann niemanden finden, der ein ähnliches Problem hat. Ich mache es offensichtlich falsch. Kann mir jemand den richtigen Weg zeigen, dies zu tun?
Von Dokumentation lese ich, 'app' erforderlich ist, wenn die globalen Anwendungsvariablen zu setzen. Wenn ich zum Beispiel 'hd.app.isAuth' alarmiere, wird jeder Wert, den ich auf' isAuth' gesetzt habe, angezeigt. In einer aktuellen Ansicht alarmiert "hd.app.isAuth" diesen Wert immer noch. Die Warnung "hd.isAuth" gibt jedoch 'undefiniert' zurück. Ihr Beispiel ist nur eine lokale Variable setzen, nicht die globale überschreiben, die ich leider brauche. –
Ich habe gerade ein wenig geändert, nur um eine Setter-Funktion zu erstellen und sie aufzurufen. Ich bin mir nicht sicher, aber ich denke, es gäbe ein Problem mit 'scope', wenn' hd.app.isAuth = 'true'' direkt verwendet wird –
Das funktioniert in der lokalen Datei, aber die globale Variable wird nicht in andere Ansichten übertragen . Haben Sie eine Idee, warum das so sein sollte und was ich tun könnte, um den Wert für die gesamte Anwendung zu erhalten? –