Sencha Touch - Rediriger vers un autre point de vue
Je suis la construction d'un Sencha Touch application et aux prises avec de réorienter ou changer un autre point de vue après la connexion. Après la connexion, j'ai besoin de le prendre pour la Page d'Accueil. Mais mon ci-dessous code de Connexion du Contrôleur de authenticateUser()ne fonctionne pas.
Essayé avec Ext.Fenêtre d'affichage.push(homePanel) , Ext.Fenêtre d'affichage.setActiveItem(homePanel) également. Mais rien ne fonctionne.
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'
}
]
}
});
De Connexion Du Contrôleur
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');
}
});
}
});
Maison Vue
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);
}
});
Quelqu'un a une idée?
Déjà visé Charger un autre point de vue après la connexion avec sencha touch 2.0 . Mais il n'y a pas de réponse . S'il vous plaît aider
- toute erreur est à venir? Si oui,veuillez spécifier.
- Pas d'erreurs d'affichage. J'ai vérifié avec la console.journal aussi. Il a exécuté avec des erreurs. Mais la vue n'est pas en train de changer. Cant on change tout simplement vue comme Ext.Fenêtre d'affichage.ajouter(Ext.créer('Mobile.vue.HomeView')); ?
- D'abord je suis l'ajout de vue login dans app.js de la lauch fonction en utilisant la même façon. Maintenant, je veux le remplacer avec un nouveau point de vue, ne devrait pas permettre à l'utilisateur de revenir à la page de connexion une fois qu'ils authentifié.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de créer une ref pour votre HomeView:
Et de définir cette vue active:
Si vous utilisez Sencha Touch 2, vous devez utiliser la Route pour rediriger vers une autre page. Ainsi, il sera comme ceci:
Puis créer un contrôleur dispose d'un itinéraire "à la maison"
Pour plus d'informations sur les itinéraires. http://docs.sencha.com/touch/2-0/#!/guide/controllers-section-4
De l'essayer. peut-être ce travail.