答案:Ext.application先执行Ext.application
中的controllers : [ 'login.UserLogin' ]中的login.UserLogin中的init : function()
再执行Ext.application中的launch : function()函数。
再执行 login.UserLogin中的onLaunch()方法。
index.js如下:
Ext.application({
name : 'cdkj',
appFolder : base + '/static/js/com',
paths : base + '/static/js/com',// 设置路径信息
controllers : [ 'login.UserLogin' ],
launch : function() {
alert(123);
Ext.tip.QuickTipManager.init();
}
});
UserLogin.js如下:
Ext.define('cdkj.controller.login.UserLogin', {
extend : 'Ext.app.Controller',
views : [ 'login.LoginWin' ],
init : function() {
alert(112233);
Ext.create('cdkj.view.login.LoginWin').show();
this.control({
'LoginLoginwin button[action=login]' : {
click : this.loginClick
},
'LoginLoginwin button[action=cancel]' : {
click : this.cancelClick
}
});
},
loginClick : function(btn) {
var win = btn.up('window'), loginForm = win.down('form');
if (loginForm.isValid()) {
loginForm.submit({
url : base + '/user/login.html',
method : 'post',
params : 'jsonStr=' + Ext.JSON.encode(loginForm.getValues()),
waitTile : '提示',
waitMsg : '正在提交登录信息,请等待...',
success : function() {
win.close();
Ext.create('cdkj.controller.index.MainController').init();
},
failure : function() {
win.close();
Ext.Msg.alert('提示', '用户密码错误,请重新输入');
}
});
}
},
cancelClick : function(btn) {
var win = btn.up('window');
win.close();
}
});
启动应用,先输出
112233
再输出
123
说明先执行了Ext.application
中的controllers : [ 'login.UserLogin' ]中的login.UserLogin中的init : function()
再执行Ext.application中的launch : function()函数。
、、、、、、、、、、、、、、、、、、、、
另外,可参考官网说明:http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.app.Controller
The init function is a special method that is called when your application boots. It is called before the Application's launch function is executed so gives a hook point to run any code before your Viewport is created.