Ext TreeStore未加载

时间:2014-05-11 21:23:52

标签: json extjs

我在sencha中使用了NestedList和TreeStore。 我的模型,商店和列表在这里:

Ext.define('ListItem', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            { name: 'pid' },
            { name: 'name' },
            { name: 'GroupVariations' }]
    }
});

var treeS=Ext.create('Ext.data.TreeStore', {
   model: "ListItem",
    config:{
         storeId:'treeS',
         autoLoad: true,
         defaultRootProperty: "Items",
          proxy: {
            type: "jsonP",
            url: "myjosn/data.json",
            reader: {
                type: "json",
                root: 'Items'
            }
        },
    root:{
        text:"Items",
        expanded: true
    }
    }
});

Ext.create('Ext.NestedList', {
    fullscreen: true,
    store: treeS,
    title: 'Varyasyonlar',
     displayField: 'name'
});

我的json数据:

[
  {
    "pid": 117,
    "name": "beklet",
    "Items": []
  },
  {
    "pid": -1,
    "name": "PASTALAR",
    "Items": [
      {
        "pid": 152,
        "name": "ÇİKOLATALI PASTA",
        "Items": []
      },
      {
        "pid": 153,
        "name": "MUZLU PASTA",
        "Items": []
      },
      {
        "pid": 154,
        "name": "ÇİLEKLİ PASTA",
        "Items": []
      },
      {
        "pid": 155,
        "name": "BEYAZ ÇİKOLATALI PASTA",
        "Items": []
      }
    ]`enter code here`
  }
]

我正在安装本地数据这个json和它的工作。但它不适用于url.Because因为商店没有填写。

console.log(treeS) => Output => f,item,data,items: Array[0]

为什么不起作用?

I tried, my json this format:

[{ “文件”:[{ “PID” 117, “姓名”: “beklet”, “文件”:[]}]},{ “文件”:[{ “PID”: - 1,” name“:”PASTALAR“,”Items“:[{”pid“:152,”name“:”ÇİKOLATALIPASTA“,”Items“:[]},{”pid“:153,”name“:”MUZLU PASTA “,”“项目”:[]},{“pid”:154,“name”:“ÇİLEKLİPASTA”,“Items”:[]},{“pid”:155,“name”:“BEYAZÇİKOLATALIPASTA” , “项目”:[]}]}]}]

但不工作

4 个答案:

答案 0 :(得分:0)

在第一级添加Items,定义为root,如下所示:

编辑:不是发送JSON数组,而是通过将第一个方括号更改为大括号来发送为JSON对象。

{"Items":[
  {
    "pid": 117,
    "name": "beklet",
    "Items": []
  },
  {
    "pid": -1,
    "name": "PASTALAR",
    "Items": [
      {
        "pid": 152,
        "name": "ÇİKOLATALI PASTA",
        "Items": []
      },
      {
        "pid": 153,
        "name": "MUZLU PASTA",
        "Items": []
      },
      {
        "pid": 154,
        "name": "ÇİLEKLİ PASTA",
        "Items": []
      },
      {
        "pid": 155,
        "name": "BEYAZ ÇİKOLATALI PASTA",
        "Items": []
      }
    ]
  }]
}

答案 1 :(得分:0)

尝试使用以下json,上面的json不遵循树结构。

[
{
    "pid": 117,
    "name": "beklet",
    "leaf": true
},
{
    "pid": -1,
    "name": "PASTALAR",
    "leaf": false,
    "Items": [
        {
            "pid": 152,
            "name": "ÇİKOLATALI PASTA",
            "leaf": true
        },
        {
            "pid": 153,
            "name": "MUZLU PASTA",
            "leaf": true
        },
        {
            "pid": 154,
            "name": "ÇİLEKLİ PASTA",
            "leaf": true
        },
        {
            "pid": 155,
            "name": "BEYAZ ÇİKOLATALI PASTA",
            "leaf": true
        }
    ]
}
]

答案 2 :(得分:0)

您的JSON数据应该是这样的

{"Children":[
  {
    "pid": 117,
    "name": "beklet",
    "leaf":false,
    "Children": []
  },
  {
    "pid": -1,
    "name": "PASTALAR",
    "leaf":false,
    "Children": [
      {
        "pid": 152,
        "name": "ÇİKOLATALI PASTA",
        "leaf":false,
        "Children": []
      },
      {
        "pid": 153,
        "name": "MUZLU PASTA",
        "leaf":false,
        "Children": []
      },
      {
        "pid": 154,
        "name": "ÇİLEKLİ PASTA",
        "leaf":false,
        "Children": []
      },
      {
        "pid": 155,
        "name": "BEYAZ ÇİKOLATALI PASTA",
        "leaf":false,
        "Children": []
      }
    ]
  }]
}

读者应该是这样的

reader: {
    type: "json",
    root: 'Children'
}

答案 3 :(得分:0)

谢谢朋友们 我发现然后回答。 我的json数据模型是:

Ext.define('Modifiers', {
extend: 'Ext.data.Model',
requires: [
    'Ext.data.Field'
],

config: {
    fields: [
        {
            name: 'id'
        },
        {
            name: 'name'
        },
        {
            name: 'price'
        },
        {
            name: 'selected'
        },
        {
            name: 'pid'
        },
        {
            name: 'must'
        },
        {
            name: 'mustGroup'
        },
        {
            name: 'isMultiSelect',
            type: 'boolean'
        },
        {
            name: 'Items'
        },
        {
            name:'isProductGroup'
        },
        {
            name:'isMultiSelect'
        }
    ]
}

});

这里的错误" id"。 我改变了#id; id" json数据中的属性及其工作! 好日子朋友......