0

我用 JSON 格式的对象数组创建了一个 JSONStore。我已经验证它的格式正确。

然后我尝试在其上使用 dojo forEach 循环,但 JSonStore 似乎没有任何数据。我可以在我的网页 URL 中指定目标,它会显示正确的数据。但是使用 console.log(myJsonStore) 会显示一个对象,但我在 Firebug 中看不到数据。对于提供数据的服务,我也看不到任何 GET。这就像在浏览器中的 URL 中指定目标路径会触发 GET,但当我尝试在我的 foreach 所在的 postCreate 中触发它时不会。

4

2 回答 2

1

你可以这样做:

var storeObj = new JsonRest({
    target: "/some/resource"
});
storeObj.query({}).forEach(function(obj){console.log(obj);});

这应该够了吧

于 2012-08-21T02:44:27.720 回答
1

我相信里卡多的回答有点不正确,因为 JsonRest.query 函数返回一个 dojo.Deferred。

您通过存储读取 api 异步进行 REST 调用 - 一旦它返回值,它将承诺运行设置为回调的内容。

试试这个为你的循环迭代器

storeObj.query( {} ).then(function ( results ) {
  dojo.forEach( results, function( obj ) {
    console.log( obj );
  });
}
于 2012-08-21T07:59:03.427 回答