问题标签 [extjs4.2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - XML嵌套节点到Extjs 4中的数组
我的博客结构如下:
现在为此,我有一个带有 hasManyAssociation 的 extjs 模型。上部模型工作正常,除了画廊项目。我的模型如下所示:
父模型:
子模型:
有人知道我做错了什么吗?
extjs - 了解如何在 Extjs 4.2 MVC 模式中引用/加载/实例化存储模型
使用 Extjs 4.2
我已经阅读了许多文档、谷歌、论坛,试图了解组件如何加载以及将它们放置在何处,例如商店、模型等,但仍然感到困惑。
这是我试图开始工作的一个例子
应用说明
包含联系人、项目、人员等的主菜单,应用程序首先加载以显示静态非数据驱动,然后使用点击显示联系人列表网格的联系人。用户然后单击联系人行并显示弹出编辑视图。
在 contacteditview 中,联系人被加载到表单中,此外表单还有一个组合框,用于加载 ContactTypes 存储。ContactType 应设置为该联系人记录的contacttype 值。
考虑到这是一个大型应用程序,执行此操作的常用方法是什么,我只想在需要时加载数据,即显示视图。
以下是我的一些困惑
您可以在应用程序配置中定义所有控制器、商店、模型、视图,但是无论您在查看哪个页面,都会加载所有内容。此外,如果您的商店有 autoLoad: true ,那么即使您没有查看该特定视图,也会对数据库进行所有商店的调用。
当您在控制器的 stores 或 models 属性中指定一个商店或模型时,这究竟是做什么的?它只是让您轻松引用商店,但没有实际创建它,还是创建它,或者它只是为了方便而设置 getter 和 setter 函数。例如,如果我在控制器的 store 属性中指定了一个商店,并且 autoLoad 为 true,则所有数据都已加载,无需执行任何其他操作。但我真正想要的是只有当我单击联系人并显示列表视图时才加载该商店。所以我设置了 autoLoad:false 并在我的列表函数中手动使用
this.getStore('Contacts')
. 这很好用,但是使用控制器的存储和模型数组属性的目的是什么。我在调试器中看到,如果我不使用 store/model 属性,则会为这些 js 文件发出获取请求。抱歉,我知道这很多,但这对我来说很困惑,并且已经为此苦苦挣扎了一段时间。
最后,只有当您通过设置 autoLoad:false 并手动加载单击联系人按钮时,我才会加载联系人网格。现在,当用户单击编辑记录加载正常但我如何让组合框加载然后选择正确的值。我认为我的部分问题是了解商店模型是如何加载和实例化的。在我的组合框存储属性中,我已将 ContactType 指定为存储,但出现错误存储未定义,因此未加载 js 文件或未实例化存储。
到目前为止,这是我的代码。
应用程序代码
联系人控制器
联系人查看列表
联系人视图编辑
extjs - 如何将 ExtJS 中可编辑网格中的数据保存在 json 文件中并通过更改刷新网格?
我在 ExtJS 中有一个可编辑的网格。我从 json 文件中获取数据,并在编辑后尝试将其保存回该文件。编辑后,我单击保存并调用 Store.sync() 但它对 JSON 文件没有任何更改,并且网格被刷新回编辑之前的状态。我是 ExtJS 的新手。我在这里缺少什么,如何使它工作?
extjs - EXTJS 4.2.0.663:带有编辑器网格的缓冲存储
带有编辑器网格的缓冲存储。
我们一直在使用 4.1.1 版本,并且正在迁移到 4.2.0.663。我们有带有缓冲存储的编辑器网格,其中包含大量数据。编辑器网格类似于行编辑示例(除了它使用缓冲存储)。但是网格的添加功能在迁移后已停止并引发错误
Ext.Error:缓冲存储不支持插入操作。
请告知要遵循的方法。
extjs - 如何使用嵌套数据在表格上设置组合框值?Extjs 4.2 Mvc
我有一个网格,它会弹出一个带有组合框的编辑表单。在显示视图之前,我加载了组合框存储。然后我使用form.loadRecord(record);
. 这可以加载主记录。但是如何加载与组合框相关的关联数据值,以便正确设置组合框的值。
我知道我可以手动使用 setValue,但我想我想我可以通过加载表单来处理。
如果我的表单有 3 个字段,可以说 firstName lastName,然后是 ContactType 的组合框。firstName 和 lastName 在我的主记录中,ContactType 是关联记录。如果我更改 lastName 或 firstName 字段中的值,则会检测到更改并将记录标记为脏。如果我更改组合框值,则记录不会被标记为脏。我猜是因为它们是两种不同的模型。如何使它成为一个记录。我认为在一个表单上有一个组合框,它的值从网格中的记录中设置是很常见的,但我找不到任何实现这一点的最佳方法的例子。
这是一些代码。
我的 json 看起来像这样。主记录有 firstName lastName hasOne 关联记录是 ContactType
控制器列表功能、编辑功能和更新功能,在单击网格行时触发
loadRecord(record.getContactType)
是相关数据的吸气剂。我能够获取相关数据,但不确定如何使其在组合框中设置值或如何使其充当一条记录并自动检测更改。
我的联系人模型
ContactType 型号
这是在具有嵌套数据的表单中为组合框设置值的正确方法吗?
如果我不使用关联并且只将所有字段放入我的联系人模型中,即将所有 ContactType 字段添加到联系人模型中,那么数据应该在同一记录中并且更改跟踪将起作用。但这似乎与 MVC 模式背道而驰,也与关联的原因背道而驰。
你们如何处理这种情况,任何例子都会很棒!
谢谢,丹
extjs4 - Extjs4 itemselector,配置问题
我尝试在 extjs4.2 中使用 itemSelector 但我不知道我可以配置两个商店。第一个多选面板由商店填充,第二个也有另一个。
我需要将变化保存在数据库中,因为我使用的存储是 ajax-proxy 数据存储。这是我的项目选择器:
“选定字段”中的值来自查询,并且不像我找到的所有示例中那样是静态的。
编辑: toStore 属性不起作用,今天这个组件让我抓狂:当我加载包含 tabPanel 的窗口时,该窗口包含第二次的 itemselector,这就是渲染:使用
Chrome 我发现了这个错误
Uncaught TypeError: Cannot read property 'internalId' of undefined
任何帮助都是有帮助的。
extjs - 网格摘要渲染器未在 extjs 中显示
谁能告诉我有什么问题在网格视图摘要渲染器中没有显示 这是我的 app.js
这是我的看法
这是我的商店
谢谢
extjs - 从 4.1 升级到 4.2 后无法访问 extjs 应用程序
最近我将我的 extjs 应用程序从 4.1 升级到了 4.2。该项目成功升级并能够在架构师中看到它。但是在预览应用程序时没有加载到浏览器中。
请帮忙。
非常感谢。
extjs - 外部数据模型监听器
我是 ExtJS 4 的新手,我制作了一个扩展的数据模型。我想听模型的设置功能。如何在设置上制作自定义侦听器,或使用原始设置功能 + 扩展覆盖设置?
extjs4.2 - Ext TreePanel:如何将子节点添加到展开的节点?
我正在尝试使用 JSON 数据从 Ext.tree.Panel 创建一棵树。
我希望第一级节点是上述 JSON 中的“firstName:”。我能够实现这一点,但是当任何节点展开时,相同的节点将显示为展开节点的子节点,如下所示。
当任何节点展开时,我想从另一个 JSON 文件添加子节点。但这里的问题是在将子节点添加到节点之前,我可以看到如上附加的子节点。
有什么办法可以避免这种行为?
代码片段
提前致谢....