如何在没有json文件的情况下使用JSON?

时间:2011-04-23 12:37:14

标签: extjs extjs4

我需要在data.TreeStore中动态使用JSON。 使用此组件,有代理“config”,它需要一个JSON文件的路径。 我的问题是,我无法在我的应用程序中编写Json文件。 我知道,如果我可以动态生成JSON并将其传递给url config到代理?

例如:

Var trStore = Ext.create('Ext.Data.TreeStore',{

... // config
proxy {

type : 'ajax',
url : { id : 'id0', task :'task0', value : 'val0', ..... }

}
});

我的网址不是文件网址,而是使用我自己的方法生成的JSON!

如何构建JSON以便与TreeStore一起使用而不使用make文件!?

我希望你理解我的问题:)

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您的示例看起来像是要将静态“内联数据”传递给TreeStore。

据我所知,使用裸树存储器是不可能的,因为它没有 data 配置选项,就像“普通”商店一样。但是,可以使用Treepanel。

您可以使用Treepanel(而不是TreeStore)的 root 配置选项将内联数据传递给TreeStore。它的工作方式与“普通”商店的 data 配置选项非常相似:

Ext.create('Ext.tree.Panel', {
  root: { id : 'id0', task :'task0', value : 'val0', children: [...], ... }
  // ...
});

有两个与此相关的警告:

  • beta3文档说 root 是布尔值,这是错误的。
  • 由于beta3中的错误,您无法与 rootVisible:false 一起使用。

答案 1 :(得分:0)

请记住,“json文件”实际上只是一个文本字符串,因此您可以使用PHP或首选服务器软件生成它。

对于代理中的url,只需输入用于运行该功能的url。例如,在我的网络应用中,我有http://example.org/controller/getTree?output=json

这会在getTree()上运行controller函数,函数知道返回json。