【发布时间】:2011-11-21 07:10:55
【问题描述】:
注意:作者是 EXT JS 的新手,正在尝试在他的项目中使用 MVC
假设我有一个数据模型不固定的 Web 服务。我希望动态创建我的模型,我从中动态创建存储,因此动态组件的数据在这些存储中。
让我们从查看模型的示例类定义开始:
Ext.define('MNESIA.model.User', { 扩展:'Ext.data.Model' });在这个模型定义中,我在配置对象中省略了'fields' 参数。这是因为当我创建上述类型模型的实例时,我想动态地给它它的字段定义,换句话说,我可以拥有这个模型的许多实例,但它们的 'fields' 参数的定义都不同。
从这里我创建商店的定义,如下所示:
Ext.define('MNESIA.store.Users', { 扩展:'Ext.data.Store', 自动加载:真 } });在那里,我有一个商店定义。我省略了'model' 参数,因为我会将它动态附加到此类的每个实例。事实上,即使是 'data' 和 'proxy' 设置也没有提到,因为我想在这个商店的实例化期间分配它们。
从那里开始,我希望拥有由动态商店驱动的动态视图。下面我有一个网格的定义
Ext.define('MNESIA.view.Grid' , { 扩展:'Ext.grid.Panel', 别名:'widget.mygrid', 宽度:700, 身高:500 });我在 Grid 规范中省略了以下参数:'columns'、'store' 和 'title'。这是因为我打算创建许多网格作为上述规范的实例,但具有动态存储、标题和列定义。
在我的控制器的某些地方,我有一些代码如下所示:
功能() { var SomeBigConfig = connect2Server(); /* 在哪里: SomeBigConfig = [ {“模型”:[ {“字段”: ["SurName","FirstName","OtherName"] } ] }, {“店铺”:[ {“数据”: {“项目”:[ {"SurName":"Muzaaya","FirstName":"Joshua","OtherName":"Nsubuga"}, {"SurName":"Zziwa","FirstName":"Shamusudeen","OtherName":"Haji"}, ... ] } }, {“代理”: { “类型”:“内存”, “读者”:{ “类型”:“json”, “根”:“项目” } } } ] }, {“网格”,[ {"title":"来自 Web 服务的一些动态标题"}, {“列”: [{ “标题”:“姓氏”, "dataIndex": "姓氏", “弹性”:1 },{ “标题”:“名字”, "dataIndex": "名字", “弹性”:1 }, { “标题”:“其他名称”, "dataIndex": "其他名称", “弹性”:1 } ]} ] } ] */ var TheModel = Ext.create('MNESIA.model.User',{ 字段:SomeBigConfig[0].model[0].fields }); var TheStore = Ext.create('MNESIA.store.Users',{ storeId: '用户', 型号:TheModel, 数据:SomeBigConfig[1].store[0].data, 代理:SomeBigConfig[1].store[1].proxy }); var grid = Ext.create('MNESIA.view.Grid',{ 商店:TheStore, 标题:SomeBigConfig[2].grid[0].title, 列:SomeBigConfig[2].grid[1].columns }); // 从这里我在页面上的任何地方绘制网格 grid.renderTo = Ext.getBody(); //结束函数 }现在这种动态创建模型,然后存储,然后网格确实会导致内存浪费,因此这将需要在每次我们想要销毁该组件时调用每个组件的销毁方法。
问题:
Qn 1: EXT JS 4 的 MVC 实现是否允许这样做?
Qn 2: 我如何通过使用xtypes 我的新课程。比如说:
Qn 3: 如果我上面写的确实有效并且 实用 正确,我可以将它应用于所有组件,如面板、TabPanels、树(其中他们的配置由远程服务器发送)?
Qn 4: 如果我有控制器 A 和 B,控制器 A 具有视图规范:[C,D],控制器 B 具有视图:[E,F],会是如果视图生成的动作正确: E 由控制器 A 处理?即控制器可以处理未在其视图配置中注册的视图的操作吗?
注意:我对 Ext JS 很陌生,但很想了解更多。建议我如何改善我的 EXT JS 学习曲线。谢谢
【问题讨论】:
标签: javascript jquery html css extjs