我剛開始接聽Sencha Touch 2 MVC。我有很強的Ext 3體驗,但這是一個全新的世界。Sencha Touch 2中的Ext.define/Ext.extend 2
我似乎無法在構建視圖時走的太遠。根據我在互聯網上看到的內容,我已經採取了兩個方向的代碼,但都不成功。
路徑1
我app.js:
Ext.application({
name: 'BkAdmin',
views: ['LoginForm'],
launch: function() {
Ext.create('BkAdmin.view.LoginForm');
}
});
我的看法/ LoginForm.js:
Ext.define('BkAdmin.view.LoginForm', {
extend: 'Ext.form.FormPanel',
config: {
fullscreen: true,
initComponent: function() {
alert('yo!');
BkAdmin.view.LoginForm.superclass.initComponent.apply(this, arguments);
}
}
}
);
這會將無差錯,我甚至可以添加表單項目配置部分。但是,initComponent()莫名其妙地永遠不會被調用,所以視圖非常不靈活。
路徑2個
我app.js:
Ext.application({
name: 'BkAdmin',
views: ['LoginForm'],
launch: function() {
BkAdmin.view.LoginForm = new BkAdmin.view.LoginForm();
}
});
我的看法/ LoginForm.js:
BkAdmin.view.LoginForm = Ext.extend(Ext.form.FormPanel, {
fullscreen: true,
initComponent: function() {
alert('yo!');
BkAdmin.view.LoginForm.superclass.initComponent.apply(this, arguments);
}
});
這平了不起作用。 Chrome報告'無法設置未定義的屬性'LoginForm'... ...地球上的視圖怎麼沒有定義?另外,它說'即使他們的文件已經被加載,以下類也不會被聲明:'BkAdmin.view.LoginForm'。'當然看起來向我宣佈。
這裏有很多問題:我在上述路徑中做了什麼錯誤?我如何獲得在路徑1中調用initComponent(),並讓路徑2工作?哪個代碼更好用?
謝謝!