在 ExtJS 4 中具有相同视图并多次存储的最佳实践

2024-01-23

我想在 ExtJS 应用程序中同时拥有不同商店的同一视图的不同实例。目前,我在视口中创建了同一视图(Ext.view.View)的多个实例。

但是在每个视图中都有不同的商店的最佳实践是什么?我发现的每个示例都在使用控制器的stores-Config 创建的视图中使用Store-ID。但这将为每个视图使用相同的存储。

目前我想到了以下可能的解决方案:

  1. 为每个视图实例创建一个自己的存储类。将所有商店添加到控制器,并为每个视图实例使用不同的商店 ID。
  2. 根本不要使用控制器的存储,并在视图的 initComponent 中创建一个新存储,手动将不同的参数传递给存储的每个实例。
  3. 根本不要使用控制器的存储,并在视图的 initComponent 中手动创建一个新存储。然后使用 load 为每个存储实例使用不同的参数来手动加载存储。

这些解决方案是否是最佳实践,还是应该采取不同的做法?


控制器的存储数组的东西是,它将覆盖任何storeId定义的。加载商店类后,控制器设置storeId通过命名空间约定,创建存储并使用值作为 getter 方法来创建 getter 方法soreId.

让我介绍一下选项4

  • 为视图定义一个存储并在视图中引用它(您也可以在控制器中引用它,只需使用requires大批)。
  • 选择有效itemId http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.Component-cfg-itemId的观点和有效storeId http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.data.Store-cfg-storeId您的商店应该取决于itemId视图的(在创建视图时设置它!)。
  • initComponent创建storeId并在 StoreManager 中查找商店。如果不存在,请创建它并提供客户配置和storeId.

如果您每次都需要销毁视图和商店,请看一下这个帖子 https://stackoverflow.com/questions/27368951/are-stores-created-in-the-initcomponent-function-memory-leaks-once-the-component/27374842#27374842

演示初始化组件

initComponent: function() {
    var me = this,
        storeId = me.storeId + me.itemId;
    me.store = Ext.StoreManager.lookup(storeId);
    if(me.store === null)
        me.store = Ext.create('App.data.CustomViewStore',Ext.apply({storeId: storeId},me.storeCfg || {}));
    me.callParent(arguments);
}

Note:如果您使用以下命令加载视图views数组,你最终会得到一个 getter,它可能不会给你你期望的视图。您也可以在这里使用控制器的 require 数组。如果您想使用 getter,只需使用以下命令创建您自己的 getterrefs http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.app.Controller-cfg-refs config.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ExtJS 4 中具有相同视图并多次存储的最佳实践 的相关文章

  • 带参数的 C# ReportViewer 本地报表

    大家下午好 过去 2 周的大部分时间我都在寻求有关 C WinForm 应用程序问题的帮助 我有一个表单 其中有一个 DataGridView 显示从数据库中提取的详细信息 当用户双击该网格中的一行时 代码从 CustomerID 列中获取
  • 如何在c++11中存储任意方法指针?

    我需要一种方法来存储方法指针列表 但我不关心它们属于哪个类 我心里有这样的想法 struct MethodPointer void object void method void 然后我可以有一个采用任意方法的函数 template
  • Extjs组合框:隐藏下拉列表中的选定值

    我正在使用 ExtJS 4 并寻找一种可以从组合的下拉列表中隐藏当前选定值的方法 因此 代替这个 当前在组合框中选择 阿拉斯加 我希望值列表如下所示 就我而言 组合框是不可编辑 即您不能输入任意值 我认为两次显示所选值没有多大意义 一次在输
  • C# 如何选择歧义和参数

    假设我有以下方法 public static void MyCoolMethod params object allObjects public static void MyCoolMethod object oneAlone params
  • 单击父节点时检查树的子节点 [ExtJS]

    我想知道如何在单击 ExtJs 中的特定节点时检查树的同级节点 我已经给了每个节点的 id 我可以访问单击的节点的 id 那么我如何继续自动检查子节点 有人请帮助我 or any other way of getting hands on
  • 将 Flex 值动态添加到 extjs 中的控制器

    我在 视图 中给出了一些项目 容器 布局为hbox 现在我想给flex通过 控制器 为每个项目赋予值 我怎样才能做到这一点 我已经浏览了文档 但找不到任何类似的方法setFlex EDIT Ext apply Ext getCmp IdHe
  • 是否可以将 getopts 与位置参数混合使用?

    我想设计一个 shell 脚本作为几个脚本的包装器 我想指定参数myshell sh using getopts并将其余参数以相同的顺序传递给指定的脚本 If myshell sh执行方式如下 myshell sh h hostname s
  • 比较 YUI 和 Ext JS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ASP.NET MVC 中使用 jQuery 进行 Ajax 调用不传递参数

    路线是 routes MapRoute Ajax Route name BizTalk Services action URL with parameters new Parameter defaults controller BizTal
  • SQL Server 使用参数导致结果缓慢

    我有一个选择一些数据的查询 我在其中传递了一些参数 DECLARE FromAccDocNo INT 1 ToAccDocNo INT 999999999 FromDate CHAR 10 1900 01 01 ToDate CHAR 10
  • F# 设置带有参数的 SQLCommand 的最佳方法

    我的 F 程序需要与 SQL Server 通信 在一部分中我有这样的事情 let workFlowDetailRuncommand new SqlCommand query econnection workFlowDetailRuncom
  • 获取特定参数的值 - Rails

    在特定控制器中 我有以下参数列表 Parameters user gt id 32 email email protected cdn cgi l email protection created at 2014 04 10T13 13 4
  • Extjs - 如何在网格列中显示组合框

    我有一个网格面板 包括日期和组合列jsfiddle http jsfiddle net YjYqX 但我不想点击显示我的组合 我想在不点击的情况下显示我的组合 而不是像隐藏在单元格内一样 日期列也一样 我认为改变clicksToEdit 0
  • Spring Boot 文件上传错误请求 400

    你好 我正在使用 Spring Boot 和 AngularJs 编写一个 Web 应用程序 需要一个简单的文件上传 但目前无法正常工作 我已经读到 当 mvc 依赖项存在时 Spring Boot 应该自动配置分段上传本身 从 https
  • JavaScript 调用函数

    我最近一直在测试一些代码 试图更好地理解 javascript 然后我遇到了call 我无法很好地理解的功能 我有以下代码 function hi console log hi var bye function param param2 c
  • 原生编程对于移动开发有何优势?

    我需要为一家公司在一些主要的移动操作系统上开发应用程序 特别是 iOS Android 和 WP7 我最初计划为三种不同的操作系统编写三个独立的应用程序 每个应用程序都使用本机 SDK 然而 这样做有什么好处吗 有许多可用的跨平台工具 Se
  • 如何在存储过程中调用存储过程(带2个参数)?

    我有具有相同参数 服务器名称和日期 的存储过程 我想编写一个存储过程并在该 SP 中执行它们 称为 SP All CREATE PROCEDURE dbo SP All AS BEGIN exec sp 1 myDate datetime
  • 模拟用户输入以使用不同参数多次调用脚本

    我必须使用提供的脚本 该脚本在脚本运行时接受用户输入而不是参数 我无法解决这个问题 脚本的一个例子是 bin bash echo param one read one doSomething echo param two read two
  • 在 Ext JS 构造函数中将项目推入数组会产生多个项目

    我有一个我定义的 Ext JS 类 在这个班级的constructor 我将一个文本字段推送到我的项目数组上 然后添加到我的测试字符串中 数组和字符串在类定义中都声明为空 但是 如果您尝试创建多个类实例 您将看到项目数组在每个实例之间共享
  • 一旦组件被销毁,在 initComponent 函数中创建的存储是否会发生内存泄漏,或者这些存储是否会被垃圾收集?

    这是从另一个问题中衍生出来的一个问题 在 ExtJS 4 中具有相同视图并多次存储的最佳实践 https stackoverflow com questions 27333787 best practice to have the same

随机推荐

  • 在Heroku 上运行delayed_job 工作线程?

    所以现在我有一个delayed job的实现 它可以在我的本地开发环境中完美运行 为了在我的机器上启动工作程序 我只需运行rake jobs work它工作得很好 为了让delayed job在heroku上工作 我一直在使用几乎相同的命令
  • 将 JSON 数据解析为 .NET 对象的最佳方法

    将 JSON 数据解析为 NET 对象的最佳方法是什么 我正在尝试帮助我的一位编码员朋友 他正在尝试使用 ASP net 将一些数据从 JSON 字符串转储到数据库中 是否有任何预构建的脚本可以实现这一点 预先感谢任何帮助 NET Fram
  • 如何修改我的用户 PROFILE 文件以将我创建的脚本文件夹附加到 PATH 变量的末尾? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何修改我的用户 PROFILE 文件以将我创建的脚本文件夹附加到 PATH 变量的末尾 我不太确定这意味着什么 谁能解释一下吗 在 un
  • 如何检查屏幕是否正在运行?

    如何在Python中检查屏幕是否具有给定的名称 例如 检查server1是否正在运行 谢谢 用于查找当前屏幕会话的内置命令是screen ls 要在 python 中获得相同的功能 from subprocess import check
  • HTML5 中的

    有几篇关于这个主题的文章 但我无法理解之间的相关区别
  • gridview 内的 CheckBox 选中状态

    我有一个简单的网格视图
  • 如何使用 RxJS 在 Angular 6 中发出一系列 http 请求

    我一直在网上寻找解决方案 但找不到任何适合我的用户案例的解决方案 我正在使用 MEAN 堆栈 Angular 6 并且我有一张注册表 我正在寻找一种方法来执行对 API 的多个 HTTP 调用 每个调用都依赖于前一个调用的返回结果 我需要看
  • 如何在 Angular4 中获取 FormControl 的值

    我对 Angular4 有一些经验 但我只是继承了一段使用 FormControls 的代码 我不知道如何使用它们 我正在设置一个注释文本区域 如果 isRegulatoryAuditRequired 的值等于 false 则需要该注释文本
  • jquery - 如何显示隐藏的div

    我的页面中嵌入了一个谷歌地图 其可见性设置为隐藏 我想使用按钮在页面上显示地图 应该使用jquery来完成 我的代码 不工作 div style height 350px border 1px solid 979797 div 任何人都可以
  • 在 C++ Microsoft Visual Studio 2010 中调试器多个环境变量

    在设置环境变量时 我在 Visual Studio 2010 Professional C 调试器中遇到了一个非常简单的问题 描述于 http msdn microsoft com en en library kcw4dzyf aspx h
  • 是否可以使用eclipse仅构建一次java项目并共享?

    是否有可能实际构建一个包含java代码的maven项目 构建一次并且二进制文件可以共享 问题 我尝试构建的项目大约需要 3 4 小时 并且需要高互联网带宽 我正在尝试检查在其他几台机器中重新使用这个构建项目的可能性 我之前曾处理过涉及 ma
  • 如何在 using 语句中使用对象初始值设定项?

    有没有什么方法可以重构此代码 以便不必使用临时变量 而仍然使用与对象初始值设定项关联的语法糖 FrmSomeForm someTempForm new FrmSomeForm SomePropA A SomePropB B SomeProp
  • Go 闭包变量作用域

    我正在阅读 CreateSpace Go 2012 编程简介 在第 86 页我发现了这个邪恶的魔法 func makeEvenGenerator func uint i uint 0 return func ret uint ret i i
  • TypeScript - 将动态属性名称传递给子级

    我正在开发一个带有嵌套路由的路由库 我试图定义一个推断父路径的子处理函数 原因是我有另一种类型 可以从字符串推断动态路径参数 例如 users id to id string 因此 我希望能够将推断的路径参数从父路由传递到每个子路由处理函数
  • 使用 Jasmine 在 Angular 5 中进行单元测试模型绑定

    我正在尝试编写一个单元测试来测试从组件方法调用返回的 JSON 数据是否成功绑定到打字稿模型 我的模型如下所示 export interface IPlayerAccount playerId number name string phon
  • 如何从 TFS 源代码管理中排除特定文件

    我们有多个配置文件 app DEV config app TEST config 等 和一个将正确的配置文件复制到 app config 的预构建事件 显然 配置特定文件位于源代码管理中 但目前 App Config 也是如此 但不应该如此
  • 从后台工作程序中的循环更新文本框

    我知道这个问题有人问过 至少从我到目前为止在这里发现的情况来看 但我无法真正理解它 已经尝试过 msdn 的示例 但仍然没有成功 这是我想要做的 我有一个连接到 TLL 标尺的 USB 计数器 我想在循环中不断读取值并将读数写入文本框而不阻
  • 如何从方法返回对对象的 const 引用? [复制]

    这个问题在这里已经有答案了 public Item getItem ulong itemId Item item items itemId return item 现在的问题是 被调用者getItem必须能够检索以下信息item持有 但不修
  • 多处理代码重复运行

    所以我希望使用 python 多处理模块创建一个进程 我希望它成为更大脚本的一部分 我还想从中得到很多其他东西 但现在我会满足于此 我从以下位置复制了最基本的代码多处理文档 https docs python org 3 6 library
  • 在 ExtJS 4 中具有相同视图并多次存储的最佳实践

    我想在 ExtJS 应用程序中同时拥有不同商店的同一视图的不同实例 目前 我在视口中创建了同一视图 Ext view View 的多个实例 但是在每个视图中都有不同的商店的最佳实践是什么 我发现的每个示例都在使用控制器的stores Con