如何在没有json文件的情况下使用JSON?
问题描述:
我需要动态使用JSON与data.TreeStore。 使用这个组件,有代理“配置”,它需要一个JSON文件的路径。 我的问题是,我不能在我的应用程序中写入Json文件。 我会知道,如果我可以动态生成JSON并将它传递给代理中的url配置?如何在没有json文件的情况下使用JSON?
例如:
Var trStore = Ext.create('Ext.Data.TreeStore',{
... // config
proxy {
type : 'ajax',
url : { id : 'id0', task :'task0', value : 'val0', ..... }
}
});
我的网址不是文件的URL,而是用我自己的方法生成JSON!
如何构建JSON以使用它与TreeStore和没有makefile!
我希望你明白我的问题:)
非常感谢您的帮助!
答
你的例子看起来像你想传递静态“内联数据”到TreeStore。
据我所见,这是不可能的一个裸树的商店,因为它没有数据配置选项作为“正常”存储具有。但是,使用Treepanel也是可以的。
您可以使用TreePanel(而不是TreeStore)的根配置选项将您的内联数据传递给TreeStore。它的工作原理非常类似的方式作为数据“正常”商店配置选项:
Ext.create('Ext.tree.Panel', {
root: { id : 'id0', task :'task0', value : 'val0', children: [...], ... }
// ...
});
有与此相关的两个警告:
- 的beta3版文档说根是布尔值,这是错误的。
- 由于beta3中的错误,您不能将其与一起使用rootVisible:false。
答
请记住,“json文件”实际上只是一个文本字符串,因此您可以使用PHP或您首选的服务器软件生成该文件。
对于代理中的网址,只需放入用于运行该功能的网址即可。例如在我的网络应用程序中,我有http://example.org/controller/getTree?output=json
这在我的controller
上运行getTree()
函数,并且该函数知道返回json。