4

我目前正在尝试启动我创建的 ExtJs MVC 应用程序,并将其集成到另一个应用程序中。由于不清楚的原因,它拒绝启动,也没有给出任何合理的信息来说明它发生的原因,查看下面的代码,我能够确定init函数运行到最后,但不是launchor beforeLaunch。也Das.SubApp延伸Ext.app.Controller.

   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");
           }

这是来自 BrowserController 的代码:

Ext.define('FBrowser.controller.BrowserController',{
extend: 'Ext.app.Controller',
views: ['browser.tree_dir',...],
stores: [...],
requires: ['FBrowser.Utilities'],

init: function() {

    this.control({..})

有人知道可能出了什么问题吗?

编辑:好的,所以我似乎找到了问题的一部分,似乎没有设置应用程序路径,我仍然不明白为什么会这样,不应该appFolder指向正确的位置吗?

4

1 回答 1

3

这很容易;

Ext.app.Controller不具有

  • 应用文件夹
  • 姓名
  • 发射前

如果你以这种方式初始化它,它就不会调用启动方法,因为这一切都完成了,或者更好地说属于Ext.app.Application控制器。另请注意,您只能拥有一个活动Ext.app.Application实例,否则您将搞砸EventBus(覆盖第一个的总线Ext.app.Application)。即使您添加这些属性(appFolder,名称),它们也不会执行任何操作,因为它们仅在Ext.app.Application派生自Ext.app.Controller

解决方案

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

您可能也对这个答案或这个感兴趣

于 2012-12-19T17:39:45.527 回答