我刚开始接听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工作?哪个代码更好用?
谢谢!