从Web API获取JSON数据;将数据加载到Store中

时间:2013-04-12 07:52:12

标签: json asp.net-web-api extjs4.2

我正在学习ExtJS-4.2,我正在学习他们的MVC教程...

我构建了我的控制器,视图,模型,存储......我的商店有硬编码数据。我有一个工作的WebAPI用于测试,它以json格式发送结果...

本教程讨论的是如何从本地文件读取并发送到API,

我想从API读取并将我的数据加载到商店......

Ext.define('AM.store.Productstore',
{
    extend   : 'Ext.data.Store',
    model    : 'AM.model.Productmodel',
    autoload : true,
    proxy    : {
            type   : 'AJAX',
            url    : 'localhost/mfw/api/products/all'
            //tutorial is no help any furthur from this point on
           }
});

我的网址为localhost/mfw/api/products/all

我回来的json是

[{"ID":1,"Name":"aa","Category":"A","Price":200.00},
 {"ID":2,"Name":"bb","Category":"B","Price":200.00
 {"ID":3,"Name":"cc","Category":"C","Price":200.00},
 {"ID":4,"Name":"dd","Category":"D","Price":200.00},
 {"ID":5,"Name":"ee","Category":"E","Price":200.00},
 {"ID":6,"Name":"ee","Category":"F","Price":200.00}]

任何帮助?

2 个答案:

答案 0 :(得分:1)

请将您的代理类型更改为“休息”而不是“Ajax”。更多提及你的读者配置。您是否将json密钥映射到模型中的字段。

请参阅sencha指南以获得更清晰的信息。

http://docs.sencha.com/ext-js/4-2/#!/guide/data

由于

答案 1 :(得分:1)

这是jsfiddle,其中显示了包含数据的网格。其中一个关键因素是json阅读器的root属性。由于您的数据没有root,因此您可以将root属性保留为out,它应该可以正常工作。如果数据包含在另一个字段(即根字段)中,则在阅读器中指定root:'myrootfield'。所以这是你的代理人。同样在你的模型中使用idProperty指定关键字段,在你的情况下它是'ID',我认为extjs默认为'id'小写的idProperty,所​​以最好直接指定它。

  proxy    : {
            type   : 'rest',
            url    : 'localhost/mfw/api/products/all'
           reader: {
                type: 'json'
            }
           }