EXTJS 4:无法从json文件加载数据

时间:2013-09-14 14:06:07

标签: javascript json extjs

我正在尝试从我的应用程序中的json文件加载数据但没有加载数据,我坚持使用它:

(模型)Singers.js:

Ext.define('SGM.model.Singers', {
extend: 'Ext.data.Model',
fields: ['id', 'ten_that', 'nghe_danh', 'ngay_sinh', 'tieu_su', 'anh_dai_dien', 'luot_like'],
idProperty: 'id',
proxy: {
    type: 'ajax',
    url: 'data/singers.json',
    reader: {
        type: 'json',
        root: 'data',
        successProperty: 'success'
    }
}

});

(存储)Singers.js

Ext.define('SGM.store.Singers', {
extend: 'Ext.data.Store',
model: 'SGM.model.Singers',
/*data:[
    {   id: 1,
        ten_that: "Bui Anh Tuan",
        nghe_danh: "Bui Anh Tuan",
        ngay_sinh:"20/9/1992",
        tieu_su: "Tieu su cua Bui Anh Tuan",
        anh_dai_dien:"buianhtuan.jpg",
        luot_like:100}, 
    {
        id: 2, 
        ten_that: "Cao Mi Kim", 
        nghe_danh: "Cao Mi Kim", 
        ngay_sinh:"20/9/1992", 
        tieu_su: "Tieu su cua Cao Mi Kim", 
        anh_dai_dien:"caomikim.jpg", 
        luot_like:100}, 
    {
        id: 3,
        ten_that: "Pham Khanh Phuong", 
        nghe_danh: "Khanh Phuong", 
        ngay_sinh:"20/9/1992", 
        tieu_su: "Tieu su cua Khanh Phuong", 
        anh_dai_dien:"khanhphuong.jpg", 
        luot_like:100}, 
    {
        id: 4, 
        ten_that: "Ho Quang Hieu", 
        nghe_danh: "Ho Quang Hieu", 
        ngay_sinh:"20/9/1992", 
        tieu_su: "Tieu su cua Ho Quang Hieu", 
        anh_dai_dien:"hoquanhieu.jpg", 
        luot_like:100}
],*/

});

上面的内联数据运行良好,但是当我创建一个单独的json文件时:singers.js(在文件夹' data'中),代码如下:

{
"success": true,    
"results": [
    {   "id": 1,
        "ten_that": "Bui Anh Tuan",
        "nghe_danh": "Bui Anh Tuan",
        "ngay_sinh":"20/9/1992",
        "tieu_su": "Tieu su cua Bui Anh Tuan",
        "anh_dai_dien": "buianhtuan.jpg",
        "luot_like": 100}, 
    {
        "id": 2, 
        "ten_that": "Cao Mi Kim", 
        "nghe_danh": "Cao Mi Kim", 
        "ngay_sinh": "20/9/1992", 
        "tieu_su": "Tieu su cua Cao Mi Kim", 
        "anh_dai_dien": "caomikim.jpg", 
        "luot_like":100}, 
    {
        "id": 3,
        "ten_that": "Pham Khanh Phuong", 
        "nghe_danh": "Khanh Phuong", 
        "ngay_sinh": "20/9/1992", 
        "tieu_su": "Tieu su cua Khanh Phuong", 
        "anh_dai_dien": "khanhphuong.jpg", 
        "luot_like": 100}, 
    {
        "id": 4, 
        "ten_that": "Ho Quang Hieu", 
        "nghe_danh": "Ho Quang Hieu", 
        "ngay_sinh": "20/9/1992", 
        "tieu_su": "Tieu su cua Ho Quang Hieu", 
        "anh_dai_dien": "hoquanhieu.jpg", 
        "luot_like": 100}
]

}

这是我的文件夹目录:

+app
++controller
++model
+++Singers.js
++store
+++Singers.js
+view
+data
++singers.json
+app.js

-index.html.js

先谢谢!

1 个答案:

答案 0 :(得分:0)

错误在于您的代理/阅读器配置的root属性。在这里,您在JSON文件中指定值"data"作为根对象,但是,对象存储在"results"属性中。

尝试以下模型定义(请注意root的值):

Ext.define('SGM.model.Singers', {
  extend: 'Ext.data.Model',
  fields: ['id', 'ten_that', 'nghe_danh', 'ngay_sinh', 'tieu_su', 'anh_dai_dien', 'luot_like'],
  idProperty: 'id',
  proxy: {
    type: 'ajax',
    url: 'data/singers.json',
    reader: {
      type: 'json',
      root: 'results',
      successProperty: 'success'
    }
  }
});