具有自定义 JsonRest 的网格未加载数据
Grid with custom JsonRest not loading data
我将网格 (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。一切正常。唯一的问题是网格未填充。
是的,找到了!!!
延迟是罪魁祸首!!
我们应该 return 自定义数据到 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 时,它会附加所有迭代方法,例如 forEach 和 resolvedObject 并 returned 该对象到网格.
然后只有 grid 迭代结果 object.Actually grid 做
store.query().forEach(##ADD ITEMS TO GRID##))
我将网格 (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。一切正常。唯一的问题是网格未填充。
是的,找到了!!!
延迟是罪魁祸首!!
我们应该 return 自定义数据到 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 时,它会附加所有迭代方法,例如 forEach 和 resolvedObject 并 returned 该对象到网格.
然后只有 grid 迭代结果 object.Actually grid 做
store.query().forEach(##ADD ITEMS TO GRID##))