我有一个基本的ExtJS问题,根据阅读文档和搜索,我似乎无法解决这个问题。目前我有一个TreePanel直接从URL加载JSON。我试图从视图中分离数据,以便我还可以使用该数据将数据提供给OpenLayers地图(使用GeoExt)。如何将TreePanel指向Ext.data.Store而不是URL?树的ExtJS数据存储
回答
TreePanels使用TreeLoaders而不是Stores来加载数据。原因是树需要分层数据,而存储是平坦的表结构,不支持层次结构。基本数据对象也不同(记录与节点)。当然,您可以使用父/子密钥将自己的分层数据存储在商店中,但此时没有内置Ext组件的任何内容。如果您尝试缓存树数据,则可能需要为此推出自己的解决方案。
编辑:现在Ext 4出来了,这个答案只适用于Ext 3。Ext 4现在有一个(大部分)统一的数据模型,并且树使用TreeStore(具有应用于模型的附加NodeInterface),不再有一个单独的TreeLoader类。
感谢您回来并添加“post ExtJS 4”更新! – 2011-09-20 20:41:19
在您的TreePanel
配置中,只需指向您的数据url即可。
loader: new Ext.tree.TreeLoader({
url: '/path/to/data.json',
requestMethod: 'GET',
preloadChildren: true
})
如果你需要一个Store
这个数据,它可以通过bmoeskau指出,由于数据格式可能不同,很麻烦。
在我们的应用程序中,我们使用了一个树面板和一个dataview的组合,两者都对数据(使用传统树加载器的树)和使用存储的数据视图发出请求。两者都提交到相同的URL,是的,有两个调用,但结果返回适当的格式化视图参数(树或数据视图)和结果相同,只是装饰不同。
这将是一个理想的呼叫,中央数据,但这似乎工作可接受。
编写几个函数来抽象解析(记录到节点),并最终获得访问数据的一般方法。
这绝对是很多人的痛点。 Ext 4.0路线图包含“关系型”商店,所以我们希望最终解决这个问题。 http://www.extjs.com/products/js/roadmap.php – 2010-04-09 08:35:35
- 1. extjs 4树存储RESTful
- 2. 如何使用单个数据存储渲染多个ExtJS树
- 3. ExtJS图表的动态数据存储
- 4. ExtJS搜索数据存储的值
- 5. extjs dataview未加载数据存储
- 6. extjs更改存储数据时更新
- 7. 搜索存储在树中的数据
- 8. 存储树和图的数据?
- 9. extjs数据存储发送到服务器(数据存储 - > json)
- 10. 以树格式存储数据R
- 11. 什么数据库可以存储树?
- 12. Google appengine数据存储树结构
- 13. 树(数据结构)的文档存储数据建模
- 14. 什么是根参数中的extjs数据存储
- 15. Extjs访问网格的存储参数
- 16. 在ExtJS的树
- 17. extjs REST api保存数据
- 18. 随机数添加到extjs数据存储ajax调用
- 19. 在ExtJS中获取一定的数据存储值
- 20. 如何脱离extjs 4数据存储区的HTML?
- 21. 使用ExtJS阅读器和没有数据存储的作家
- 22. extjs数据存储中的“每个”方法
- 23. 增加对ExtJS的网格存储数据(3)
- 24. 如何更改ExtJS的组合框存储数据4.1
- 25. 如何禁用基于viewModel存储returnrd数据的组件extjs
- 26. Extjs:按数组筛选存储
- 27. extjs存储错误处理
- 28. ExtJS重复存储记录
- 29. ExtJS:组合数据存储未在字段集内加载
- 30. 将动态数据添加到extjs存储
看起来情况在ExtJS 3.1中随着TreeGrid组件的增加而改变:http://www.extjs.com/blog/2009/12/17/ext-js-3-1-massive-memory-改进 - treegrid-and-more%E2%80%A6/ – 2010-01-22 01:52:11
警告:这个问题和答案是过时的(4岁)。我希望SO有办法归档这些... – HDave 2013-11-07 14:06:32