1

我在java中有一个名为Zone1s的类,它有2个字段文本(区域名称)和Zone1s列表。当我将其转换为 json 时,我得到以下响应:

{"text":"Papa","Zone1s":[{"text":"Beta1","Zone1s":[{"text":"BetaBeta1","Zone1s":[]},{"text":"BetaBeta2","Zone1s":[]}]},{"text":"Beta2","Zone1s":[]}]}

我在下面写了一个 Extjs 模型、存储和面板:

Ext.define('Zone1s', {
    extend: 'Ext.data.Model',
    fields: [

        { name: 'text', type: 'string' } 
    ], 

    proxy: {                       
        type: 'ajax',
        url : 'test.htm',
        reader: {
    type  : 'json',
      record: 'Zone1s'
        }
    },
hasMany: {model: 'Zone1s', name: 'Zone1s'},
belongsTo: 'Zone1s'
});

var store =Ext.create('Ext.data.Store', {
    model: 'Zone1s',
    autoLoad: true
});

Ext.create('Ext.tree.Panel', {
    title: 'Simple Tree',
    width: 200,
    height: 150,
    store: store,

    renderTo: Ext.getBody()
});

我收到以下错误: me.store.getRootNode 不是函数... 谁能指导我哪里错了?我已经完成了 如何将嵌套数据显示到树中? 但在这里,我的 Zone1 本身可以有 Zone1,这就是区别。

4

1 回答 1

-1

您应该向您的 Store 添加一个 root 属性:

var store =Ext.create('Ext.data.Store', {
    model: 'Zone1s',
    autoLoad: true,
    root: {
      text: 'Zone1s',
      id: 'Zone1s',
      expanded: true
   }
});

如果您不想看到根节点,请使用rootVisible属性:

Ext.create('Ext.tree.Panel', {
        title: 'Simple Tree',
        width: 200,
        height: 150,
        store: store,
        rootVisible : false,
        renderTo: Ext.getBody()
    });
于 2012-08-29T15:34:33.343 回答