动态模型、存储和视图——最好的方法

     2023-02-23     184

关键词:

【中文标题】动态模型、存储和视图——最好的方法【英文标题】:Dynamic Models, Stores, and Views -- Best way to 【发布时间】: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 我的新课程。比如说:

xtype:“我的网格”, 商店:TheStore, 标题:SomeBigConfig[2].grid[0].title, 列:SomeBigConfig[2].grid[1].columns

Qn 3: 如果我上面写的确实有效并且 实用 正确,我可以将它应用于所有组件,如面板、TabPanels、树(其中他们的配置由远程服务器发送)?

Qn 4: 如果我有控制器 A 和 B,控制器 A 具有视图规范:[C,D],控制器 B 具有视图:[E,F],会是如果视图生成的动作正确: E 由控制器 A 处理?即控制器可以处理未在其视图配置中注册的视图的操作吗?

注意:我对 Ext JS 很陌生,但很想了解更多。建议我如何改善我的 EXT JS 学习曲线。谢谢

【问题讨论】:

【参考方案1】:

在我的选项中,您的模型必须映射到要呈现到视图的商店,例如,如果像这样实现模型部分

"model":["fields":[name:'name',type:'string', name:'id',type:'string']] ,这将很容易地映射到商店以供视图渲染。

【讨论】:

我的模型有问题吗?我只有一个简单的模型规范来说明我的新动态 MVC 设计模式

Django DetailView 动态模型

】DjangoDetailView动态模型【英文标题】:DjangoDetailViewdynamicmodel【发布时间】:2016-06-0413:55:34【问题描述】:我正在尝试为django应用程序的多个模型创建一个视图。该应用程序基本上是一个具有一些自定义功能的管理后端。在每个... 查看详情

如何在刷新表视图之前获取视图模型中的存储库列表?

】如何在刷新表视图之前获取视图模型中的存储库列表?【英文标题】:HowcanIgetalistofrepositoriesintheviewmodelbeforethetableviewisrefreshed?【发布时间】:2019-01-2410:04:06【问题描述】:我正在尝试构建一个搜索GitHub存储库的应用程序。我... 查看详情

Qt - QVector 和模型视图 - 从 listView 获取自定义类的最佳方法是啥?

】Qt-QVector和模型视图-从listView获取自定义类的最佳方法是啥?【英文标题】:Qt-QVectorandModelView-what\'sthebestwaytogetacustomclassfromalistView?Qt-QVector和模型视图-从listView获取自定义类的最佳方法是什么?【发布时间】:2020-02-0413:31:03【... 查看详情

C# 模型视图控制器

】C#模型视图控制器【英文标题】:C#modelviewcontroller【发布时间】:2009-03-0318:42:02【问题描述】:所以我正在以模型-视图-控制器模式创建C#/Winforms应用程序。我的视图控制器需要实例化多组对象。对象组是模型的元素和视图的元... 查看详情

如何在 Xamarin 表单中的视图模型之间最好地传递信息 - Prism [关闭]

】如何在Xamarin表单中的视图模型之间最好地传递信息-Prism[关闭]【英文标题】:HowtobestpassinformationbetweenviewmodelsinXamarinforms-Prism[closed]【发布时间】:2021-11-2414:59:26【问题描述】:我只是不确定使用哪种方法。我想在视图模型之间... 查看详情

Django Post 模型视图示例

】DjangoPost模型视图示例【英文标题】:DjangoPostmodelviewsexample【发布时间】:2017-06-3013:31:06【问题描述】:我想创建一个简单的帖子模型。django最简单有用的帖子创建、删除、详细信息和列表如何?最好的问候【问题讨论】:也... 查看详情

在 Sencha Touch 2 中使用不同的代理存储动态定义和加载视图

】在SenchaTouch2中使用不同的代理存储动态定义和加载视图【英文标题】:DynamicallydefineandloadviewswithdifferentproxystoreinSenchaTouch2【发布时间】:2013-03-2609:52:58【问题描述】:我正在使用SenchaTouch2创建一个移动应用程序,它将根据来自... 查看详情

我想动态更改视图中每个作业的自定义工作区(代码片段)

...解详情。因此,如果我理解正确,您需要为一个作业传递动态工作空间。最好的方法是使用Jenkinspipeline并将分支名称作为构建参数传递。对于自由式 查看详情

除了堆栈和堆模型之外,C++ 还实现了哪些其他形式的自动和动态存储? [复制]

...了堆栈和堆模型之外,C++还实现了哪些其他形式的自动和动态存储?[复制]【英文标题】:WhatotherformsofautomaticanddynamicstoragehavebeenimplementedforC++otherthanthestackandheapmodel?[duplicate]【发布时间】:2016-10-0600:03:06【问题描述】:在C++规范... 查看详情

数据绑定:模型到视图

Object.defineProperty听说vuejs和avalon都是使用这种方式实现的。Object.defineProperty最早是由IE8实现的,但是IE8的实现有许多问题而且不能hack。。。所以vuejs才支持IE9+,avalon才使用VBScript这个鬼。我们可以在Object.defineProperty里用getter和sett... 查看详情

将数据模型发送到局部视图的标准方法是啥?

...个名为“_MenuPartial”的局部视图,其中包含来自数据库的动态数据。现在我在“_Layout.cshtml”中呈现此视图,如下所示_Layout.cshtml 查看详情

qt入门教程数据模型篇模型/视图教程

模型/视图教程每个UI开发人员都应该了解ModelView编程,本教程的目标是为您提供易于理解的本主题简介。表、列表和树小部件是GUI中经常使用的组件。这些小部件有2种不同的方式可以访问其数据。传统方式涉及小部件,其中包... 查看详情

cglib动态代理

NoSQL运动的新时代现代软件系统在数据量和吞吐量要求等方面面临的挑战表明,关系数据存储经常成为瓶颈,从而对整体系统可扩展性施加限制。传统上,解决这个问题的方法只是购买一个更大的盒子(所谓的垂直可扩展性),... 查看详情

在android上动态创建视图和getWidth方法

】在android上动态创建视图和getWidth方法【英文标题】:DynamiccreationofviewsandgetWidthmethodsonandroid【发布时间】:2011-02-1211:02:59【问题描述】:我在布局和视图上的getWidth方法有问题,所以我尝试在父视图中分离视图的创建和放置。在... 查看详情

面试题

AOP:面向切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合降低,提高程序的可重用性,同时提高了开发效率。Ioc... 查看详情

骨干路由器,视图和模型合作

】骨干路由器,视图和模型合作【英文标题】:Backbonerouter,view&modelcooperation【发布时间】:2015-11-1610:55:14【问题描述】:我有一个包含一些按钮的视图。当该视图被激活时,它应该采用一些URL参数(在我的情况下-站点ID)并... 查看详情

Xcode,从情节提要中提取视图到笔尖,最好的方法?

】Xcode,从情节提要中提取视图到笔尖,最好的方法?【英文标题】:Xcode,extractingviewsfromastoryboardtoanib,bestapproach?【发布时间】:2017-12-2718:34:39【问题描述】:我需要从情节提要中提取一些重复的复杂性,可能提取到一个nib文件... 查看详情

格式化来自模型的动态 json 字符串以在 .net 视图中显示

】格式化来自模型的动态json字符串以在.net视图中显示【英文标题】:formatdynamicjsonstringfrommodelfordisplayin.netview【发布时间】:2020-10-2902:12:08【问题描述】:所以我的模型数据中有一个json字符串,它被发送到视图以在表格中显示... 查看详情