【发布时间】:2013-05-24 19:01:20
【问题描述】:
帮助!我有一个 ExtJS 4.2 MVC 应用程序,它将包含多种不同的视图。但是,每个用户只能访问整个集合的一小部分。显然我不想为每个用户加载所有视图!此外,每个“允许”视图都应在用户登录后加载。
过去(在 MVC 之前)我使用 Ext.create() 来动态加载我的 .js 类文件。但是,我正在尝试使用 MVC 设计模式,而我在网上阅读的所有内容都表明这似乎是 ExtJS 4.2 MVC 的限制。这是真的?以下是我迄今为止尝试过的。
一、自定义视图定义(一个基本的容器示例):
Ext.define('My.custom.TestView', {
extend: 'Ext.container.Container',
alias: 'widget.myCustomTestView',
html: 'Test',
initComponent: function() {
this.callParent(arguments);
}
});
其次,试图加载/实例化自定义视图的控制器定义:
Ext.define('My.custom.TestController', {
extend: 'Ext.app.Controller',
// Empty array because I want to
// add views during run-time.
views: [
],
init: function () {
// Attempt #1: This produces an error.
this.getView('My.custom.TestView').create();
// Attempt #2: This returns null.
Ext.widget('myCustomTestView');
// Attempt #3: This appears it might work, but it's ugly!
Ext.create('My.custom.TestView');
this.getView('My.custom.TestView').create();
}
});
虽然#3 是唯一一个不出错的,但它对我来说并不正确。有什么建议/cmets?
【问题讨论】:
标签: javascript html model-view-controller lazy-loading extjs4.2