2014-08-29 95 views
0

我最近通过继承了一个用3.4编写的web应用程序来深入了解ExtJS。我已经成功地创建了一个附加到网格的商店,并且没有任何问题,并且已经能够调用一个PanelForm,并将数据从调用加载到一个php页面。ExtJS json商店没有填充

我定义的另一个JSON店,当我调用它的加载程序,我想知道我错过了什么没有得到填充。

商店的定义是以下:

var ImgStore = new Ext.data.JsonStore({ 
totalProperty: 'total' 
,root: 'data' 
,url : 'json/getProductImage/'   
,fields : [{ 
    name : 'img' 
},{ 
    name : 'extn' 
}] 
}); 

我的代码加载数据是:

ImgStore.load({callback: function() {}    
     ,params: {'ProductGUID': x} 
    }); 

在URL后面的代码是精细和以下萤火虫响应:

{"success":true,"data":{"img":"iVBORw0KG...ggg==","extn":"png"}} 

我能不明白是为什么响应回来,但商店不填充。我肯定错过了什么;我看不出有什么...

是否已经存储被绑定到另一个对象?我想要做的是回读base64编码的字符串,然后在屏幕上显示图像(在面板上,FormPanel或Container上;确实不是最好的方法)

任何建议都会收到。

回答

0

您的店铺需要一个模型。该模型需要反映您的JSON提要中返回的属性。只有这样数据才会显示在您的商店中。

+0

没有必要对模型的3.4 http://docs.sencha.com/extjs/3.4.0 /#!/api/Ext.data.JsonStore-cfg-reader – 2014-08-31 14:41:25

+0

根据以上评论 - 我不认为如果没有明确定义,如果在飞行中创建就不需要。 – 2014-08-31 15:50:05

0

一切都看起来不错,除了网址配置不ü缺少文件的名称? 'json/getProductImage/myfile.json'

你是如何确认存储没有被绑定到一个网格装?因为如果这样,商店可以被加载但不配置网格正确可能使U觉得店里没有加载,尝试console.log(store.getTotalCount())

+0

否 - 这是一个包含index.php文件的目录。 Index.php被设置为默认文档,因此在进入文件夹时读取并触发。我还有25个其他的例子没有问题,所以我不相信这是事实。关于验证 - 我曾使用console.log(ImgStore)返回一个空对象。对另一个填充了数据的JsonStore的调用返回可以被浏览的对象。我没有将它绑定到网格上;我的观点是,创建一个绑定到网格的人正在工作,但这种方法还不完全相同。 – 2014-08-31 15:51:45

+0

考虑到js是异步的,所以如果你做了store.load(),并且在那之后console.log()存储可能仍然在加载 – 2014-09-01 01:37:55

+0

,所以到console.log时它仍然是空的,这将是一个好的做法将文件的名称放在url中。将ImgStore.getTotalCount()放入回调函数中。 – 2014-09-01 01:49:00