我目前正在开发一个具有许多视图/ controlers/Ext JS应用程序... 我想知道自己加载JS控制器/视图/等最佳做法是什么上...Ext JS 4.2.1加载控制器 - 最佳实践
目前,我有我的应用程序定义是这样的:
// enable javascript cache for debugging, otherwise Chrome breakpoints are lost
Ext.Loader.setConfig({ disableCaching: false });
Ext.require('Ext.util.History');
Ext.require('app.Sitemap');
Ext.require('app.Error');
Ext.define('app.Application', {
name: 'app',
extend: 'Ext.app.Application',
views: [
// TODO: add views here
'app.view.Viewport',
'app.view.BaseMain',
'app.view.Main',
'app.view.ApplicationHeader',
//administration
'app.view.administration.User'
...
],
controllers: [
'app.controller.Viewport',
'app.controller.Main',
'app.controller.ApplicationHeader',
//administration
'app.controller.administration.User',
...
],
stores: [
// stores in there..
]
});
不知何故此强制客户端加载我在启动时所有视图和控制器,并呼吁当然所有控制器的所有初始化方法。 。 我需要加载数据每次我chnage我的看法..现在我不能加载它在我的控制器init函数上。我将不得不这样做,我假设:
init: function() {
this.control({
'#administration_User': {
afterrender: this.onAfterRender
}
});
},
有没有更好的方法来做到这一点?或者只是其他事件?
虽然我质疑自己的主要事情是,如果这是在启动时加载所有的JavaScript的最佳做法。如果只加载客户端现在需要的控制器/视图/ ...,会不会更好?或者我应该在启动时加载所有的JS?
如果我想要动态加载控制器,我该怎么做?我假设将不得不从我的应用程序数组(视图,控制器,存储)中删除它们,并创建一个实例,如果我确实需要它,并且mby在控制器init中设置视图?!
什么是最佳实践?
UPDATE
将deftJS其视图 - 控制是一个很好的选择吗? deftJS的主要优点和缺点是什么?
在你的链接文章的答案中,用户catalinux写了一些关于DeftJS的东西。尽管它对我来说是新的,但我看起来有点不自在。它的主要优点/缺点是什么?使用DeftJS有什么不足吗? – JuHwon
我喜欢Deft的IoC和推迟/承诺,但我认为他们搞砸了MVC的选择器。例如,您不能使用Deft选择表单中的所有字段,但可以使用常规的extjs mvc。 –
@NeilMcGuigan我刚开始使用DeftJS,我可以告诉你最后的声明(不能使用复杂的选择器)是不正确的。但是,选择器的范围仅限于受控视图的子项。哪个IMO是一件非常好的事情:常规的ExtJS允许你从任何控制器中选择任何东西,从而为创建隐藏的依赖关系而敞开大门。对我而言,ExtJS的“MVC”设计非常糟糕,DeftJS最终为Ext应用程序的体系结构带来了一些意义。 – RIAstar