带有自定义JsonRest的网格未加载数据



我有网格(gridx/grid)与我的自定义存储连接,它扩展了dojo/store/JsonRest。

我的服务器调用成功,store.data将正确加载。

我的存储中有我的自定义query()方法(扩展JsonRest)。我在query()方法中使用POST请求,而不是GET请求。

query: function(){
//....custom config.......
var xhrArgs = {
url: this.url,
postData: postData,
handleAs: "json",
headers: {'Accept':'application/json','Content-Type':'application/json'},
load: function(data)
{
// ....data customization....
store.data = customizedData;
},
error: function(error)
{
console.log(error);
}
}
var results =  dojo.xhrPost(xhrArgs);
results.then(function(response){
// ....data customization....
store.data = customizedData;
return customizedData;
});
return QueryResults(results);
}

我已经在query()方法和我的自定义函数(在then方法中)中返回了dojo/store/util/QueryResults。所有操作都很好。唯一的问题是网格并没有填充。

是的,找到了!!!

诽谤是罪魁祸首!!

我们应该将自定义数据返回到QueryResults,而不是xhr对象。

所以我的查询方法应该是这样的

query: function(){
//....custom config.......
var xhrArgs = {
url: this.url,
postData: postData,
handleAs: "json",
headers: {'Accept':'application/json','Content-Type':'application/json'},
load: function(data)
{
// ....data customization....
store.data = customizedData;
},
error: function(error)
{
console.log(error);
}
}
var results =  dojo.xhrPost(xhrArgs);

//********************************** THIS IS RIGHT WAY ***************
var resolvedObject = results.then(function(response){
// ....data customization....
store.data = customizedData;
return customizedData;
});
return QueryResults(resolvedObject);
}

当我们将解析的对象传递给QueryResults时,它会将所有IterativeMethod(如forEach)与resolvedObject相加,并将该对象返回到网格。

然后只对结果对象进行网格迭代。实际上网格做

store.query().forEach(##ADD ITEMS TO GRID##))

相关内容

  • 没有找到相关文章

最新更新