ExtJs MVC应用程序将无法加载

时间:2012-12-19 14:57:22

标签: javascript extjs extjs4 extjs-mvc

我目前正在尝试启动我创建的ExtJs MVC应用程序,并将其集成到另一个应用程序中。由于不明原因,它拒绝启动,也没有给出任何合理的消息,为什么它发生,看下面的代码,我能够确定init函数运行到最后,但不是{{ 1}}或launch。此外beforeLaunch扩展了Das.SubApp

Ext.app.Controller

以下是BrowserController中的代码:

   this.subApp = Ext.create('Das.SubApp', {
        appFolder: '/Scripts/app/das/FBrowser',
        name: 'FBrowser',
        controllers: ['BrowerController'],
        dependencies: {
            css: [],
            js: []
        },
        init: function() {console.log("initialized")},
        beforeLaunch: function() {
            console.log("Before launch");
        },
        launch: function () {
            console.log("launched library");
           }

任何人都知道可能出现什么问题?

编辑:好的,所以我似乎找到了部分问题,似乎应用程序路径没有设置,我仍然不明白为什么会这样,Ext.define('FBrowser.controller.BrowserController',{ extend: 'Ext.app.Controller', views: ['browser.tree_dir',...], stores: [...], requires: ['FBrowser.Utilities'], init: function() { this.control({..}) 指向正确的地方?

1 个答案:

答案 0 :(得分:3)

这很容易;

Ext.app.Controller没有

  • appFolder
  • 名称
  • beforeLaunch

并且如果你以这种方式初始化它就不会调用启动方法,因为这已经完成或更好地说属于Ext.app.Application控制器。另请注意,您只能有一个活动的Ext.app.Application实例,否则您将弄乱EventBus(覆盖第一个Ext.app.Application的总线)。即使您添加了这些属性(appFolder,name),它们也什么也不做,因为它们仅在Ext.app.Application中使用,Ext.app.Controller来自Das.SubApp

解决方案

Ext.app.Application需要{{1}}(如果不是真的需要,请不要扩展,因为无论如何只能激活一个实例)。

您可能还对 this 回答或 this

感兴趣