Sencha Touch - Redirect zu einer anderen Ansicht
Baue ich eine Sencha-Touch-Anwendung und Kampf mit umleiten oder ändern einer anderen Ansicht nach dem login. Nach dem login muss ich es auf Startseite. Aber meine unten code in der Login-Controller authenticateUser()funktioniert nicht.
Versucht mit Ext.Viewport.push(homePanel) , Ext.Viewport.setActiveItem(homePanel) auch. Aber nichts funktioniert.
LoginView
Ext.define("Mobile.view.LoginView", {
extend: "Ext.form.FormPanel",
alias: "widget.mylogin",
id: 'loginFormPanel',
config: {
name: 'loginform',
frame: true,
url: 'login/Authenticate',
title: 'Login',
items: [
{
xtype: 'fieldset',
itemId: 'LoginFieldset',
margin: '10 auto 0 auto ',
title: '',
items: [
{
//User Name field def
},
{
//Pwd Field Def
}
]
},
{
xtype: 'button',
id: 'loginButton',
text: 'Login',
action: 'login'
}
]
}
});
Login-Controller
Ext.define("Mobile.controller.LoginController", {
extend: "Ext.app.Controller",
views: ['LoginView', 'HomeView'],
models: ['UserModel'],
config: {
refs: {
loginForm: "#loginFormPanel"
},
control: {
'button[action=login]': {
tap: "authenticateUser"
}
}
},
authenticateUser: function (button) {
loginForm.submit({
method: 'POST',
success: function (form, result) {
//THIS IS NOT WORKING
Ext.Viewport.add(Ext.create('Mobile.view.HomeView'));
},
failure: function (form, result) {
console.log('Error');
Ext.Msg.alert('Check the logic for login and redirect');
}
});
}
});
Home-Ansicht
Ext.define('Mobile.view.HomeView', {
extend: 'Ext.Container',
id: 'homescreen',
alias: "widget.homepanel",
config: {
layout: {
type: 'card',
animation: {
type: 'flip'
}
},
items: [
{
xtype: 'toolbar',
docked: 'bottom',
id: 'Toolbar',
title: 'My App',
items: [
{
id: 'settingsBtn',
xtype: 'button',
iconCls: 'settings',
ui: 'plain',
iconMask: true
}
]
},
{
xclass: 'Mobile.view.ActionListView'
}
]
},
});
App.JS
Ext.application({
name: "Mobile",
controllers: ["LoginController", "HomeController"],
views: ['LoginView', 'HomeView', 'ActionListView'],
models: ['UserModel', 'OrganizationModel', 'ActionModel'],
stores: ['OrganizationStore', 'ActionStore'],
launch: function () {
var loginPanel = Ext.create('Ext.Panel', {
layout: 'fit',
items: [
{
xtype: 'mylogin'
}
]
});
Ext.Viewport.add(loginPanel);
}
});
Jemand eine Idee?
Die bereits erwähnte Laden einer anderen Ansicht nach dem login mit sencha touch 2.0 . Aber es gibt keine Antwort . Bitte helfen Sie
die Fehler kommen? Wenn ja,bitte angeben.
Keine Fehler zeigt. Ich habe mit der Konsole.melden Sie auch. Es erfolgt mit der out-Fehler. Aber Ansicht ist nicht zu ändern. Cant wir einfach die Ansicht ändern, wie Ext.Viewport.hinzufügen(Ext.create('Mobile.Blick.HomeView')); ?
Zunächst bin ich das hinzufügen login-Ansicht in app.js lauch-Funktion über die gleichen Wege. Jetzt will ich ersetzen Sie es mit der neuen Ansicht auch sollte nicht zulassen, dass Benutzer wieder auf die login-Seite, sobald Sie authentifiziert werden.
Keine Fehler zeigt. Ich habe mit der Konsole.melden Sie auch. Es erfolgt mit der out-Fehler. Aber Ansicht ist nicht zu ändern. Cant wir einfach die Ansicht ändern, wie Ext.Viewport.hinzufügen(Ext.create('Mobile.Blick.HomeView')); ?
Zunächst bin ich das hinzufügen login-Ansicht in app.js lauch-Funktion über die gleichen Wege. Jetzt will ich ersetzen Sie es mit der neuen Ansicht auch sollte nicht zulassen, dass Benutzer wieder auf die login-Seite, sobald Sie authentifiziert werden.
InformationsquelleAutor Murali Murugesan | 2012-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie einen ref für Ihre HomeView:
Und legen Sie diese Ansicht aktiv:
I dont like id propety, die ich bevorzuge, erstellen Sie eine ref mit xtype alias, so Sie keine chance haben, zu doppelten id ' s... aber ist eine option...
InformationsquelleAutor MattioliSencha
Wenn Sie Sencha Touch 2 verwenden, sollten Sie das Route-redirect zu einer anderen Seite. So, es wird so sein:
Dann erstellen Sie eine Steuerung, mit der eine route "nach Hause"
Weitere Informationen über Routen. http://docs.sencha.com/touch/2-0/#!/guide/Controller-Sektion-4
InformationsquelleAutor Tuong Le
Versuchen. kann sein, dass das funktioniert.
InformationsquelleAutor Vikal Sharma