我正在構建Sencha Touch應用程序,並在登錄後重定向或更改其他視圖。登錄後,我需要把它帶到首頁。但我下面的代碼在登錄控制器的authenticateUser()不起作用。Sencha Touch - 重定向到另一個視圖
也試過Ext.Viewport.push(homePanel),Ext.Viewport.setActiveItem(homePanel)。但沒有任何工作。
LoginView
登錄控制器
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');
}
});
}
});
首頁查看
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);
}
});
任何一個有什麼想法? 已經提及Load another view after login with sencha touch 2.0。但沒有答案。請幫忙
任何錯誤即將到來?如果是,請說明。 –
沒有錯誤顯示。我也檢查了console.log。它執行出錯。但看法並沒有改變。不能改變視圖像Ext.Viewport.add(Ext.create('Mobile.view.HomeView')); ? –
最初我使用相同的方式在app.js lauch函數中添加登錄視圖。現在我想用新視圖替換它,也不應允許用戶在認證後返回登錄頁面。 –