如何使用extjs 4.0 beta 3制作“MVC应用程序”?

时间:2011-04-19 08:04:45

标签: extjs extjs4

是否有人使用EXTJS 4 BETA 3制作MVC应用程序?并且工作正常?? 请帮帮我怎么样?,..

我已逐步跟踪here ..和@Abdel Olakara帮助

但仍有错误...这里是我的萤火虫

[Ext.Loader] Synchronously loading 'AM.controller.Users'; consider adding  
Ext.require('AM.controller.Users') above Ext.onReady  

[Ext.Loader] Synchronously loading 'AM.store.Users'; consider adding  
Ext.require('AM.store.Users') above Ext.onReady

this.getView('Viewport') is null

当我在论坛上阅读this时...... MVC指南仍有一些错误......

所以,如果你让它有效..怎么样?

这是我的Application.js

Ext.Loader.setConfig({enabled:true}); 
Ext.create('Ext.app.Application', {
    name: 'AM',

    controllers: [
        'Users'
    ],

    views: [
        'user.List'
    ],

    launch: function() {
        Ext.create('Ext.container.Viewport', {
            layout: 'fit',
            items: {
                xtype: 'userlist'
            }
        });
    }
});

我正在尝试在Extjs中学习MVC ... 抱歉,如果我的英语不好......

2 个答案:

答案 0 :(得分:4)

嗯,我想我应该收回我的话!通过sencha博客后我取得了一些成功。最后,让我的MVC“Skeleton”运行!

以下是工作代码:

Ext.Loader.setConfig({enabled:true});
Ext.create('Ext.app.Application', {
    name: 'AM',
    autoCreateViewport: false,
    controllers: [],

    launch: function() {
        Ext.create('Ext.container.Viewport', {
            layout: 'fit',
            items: [
                {
                    xtype: 'panel',
                    title: 'Users',
                    html : 'List of users will go here'
                }
            ]
        });
    }
}); 

请注意,代码非常小,并删除了论坛和此处报告的常见错误。下一步是开始玩这个代码并添加控制器,视图等!

我会继续更新这个答案。


更新:提到的前两个错误实际上并不是错误。它们是警告,即使它们显示这些警告,应用程序也能正常工作。你提到的第三个错误就是塞子!

解决视口问题以下是解决问题的两种方法。

  1. 使用autoCreateViewport: false,属性并定义视口(我看到您已在启动方法中定义了视口)
  2. 创建一个Viewport.js并将其保存在视图文件夹中。在这种情况下,我觉得我的启动方法为空,并将视口代码移动到Viewport.js文件。但我确实收到了错误:

    未捕获的TypeError:无法调用方法'create'of null

答案 1 :(得分:0)

我确实使用ExtJS 4.1。

在我的代码[Ext.Loader] Synchronously loading 'OOO.store.News'; consider adding
Ext.require('OOO.store.News') above Ext.onReady
中,如果我放置

,则会调用警告消息
stores: [
    'News',
],

在我的app/Application.js文件而不是app/controller/OOO.js文件中。

所以把stores:[],放在控制器文件中。