我目前正在尝试启动我创建的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({..})
指向正确的地方?
答案 0 :(得分:3)
这很容易;
Ext.app.Controller
没有
并且如果你以这种方式初始化它就不会调用启动方法,因为这已经完成或更好地说属于Ext.app.Application
控制器。另请注意,您只能有一个活动的Ext.app.Application
实例,否则您将弄乱EventBus
(覆盖第一个Ext.app.Application
的总线)。即使您添加了这些属性(appFolder,name),它们也什么也不做,因为它们仅在Ext.app.Application
中使用,Ext.app.Controller
来自Das.SubApp
解决方案
Ext.app.Application
需要{{1}}(如果不是真的需要,请不要扩展,因为无论如何只能激活一个实例)。