你好,
我正在与 sencha 建筑师合作,在一个 touch 2.4 项目中。我在处理嵌套列表和树存储时遇到问题:
这是我的商店:
Ext.define('App.store.Tree', { extend: 'Ext.data.TreeStore', requires: [ 'App.model.Servicios', 'Ext.data.proxy.Ajax', 'Ext.data.reader.Json', 'Ext.data.proxy.LocalStorage' ], config: { model: 'App.model.Servicios', storeId: 'Tree', defaultRootProperty: 'items', proxy: { type: 'ajax', type: 'localstorage', reader: { type: 'json' } } }
});
(我已经尝试过代理和阅读器的每种组合,错误是一样的。)
现在这是我的模型:
Ext.define('App.model.Servicios', { extend: 'Ext.data.Model', requires: [ 'Ext.data.Field' ], config: { fields: [ { name: 'categoria', type: 'string' }, { name: 'nombre', type: 'string' }, { name: 'ubicacion', type: 'string' }, { name: 'datos', type: 'string' } ] } });
这是带有嵌套列表的容器:
Ext.define('App.view.ServiciosContainer', { extend: 'Ext.Container', alias: 'widget.servicioscontainer', requires: [ 'Ext.Toolbar', 'Ext.Button', 'Ext.dataview.NestedList' ], config: { height: '100%', id: 'ServiciosContainer', width: '100%', layout: 'fit', items: [ { xtype: 'toolbar', docked: 'top', items: [ { xtype: 'button', id: 'serviciosContainerHome', iconCls: 'list' }, { xtype: 'button', id: 'serviciosContainerBorrar', iconCls: 'trash' }, { xtype: 'button', id: 'serviciosContainerAgregar', iconCls: 'add' } ] }, { xtype: 'nestedlist', id: 'lstServicios', displayField: 'nombre', store: 'Tree' } ] }, });
添加按钮执行以下操作:
var data = { items: [ { nombre: '1', items: [{ nombre: '1.1', items: [{ nombre: '1.1.1 last', leaf: true }, { nombre: '1.1.2 last', leaf: true }] }, { nombre: '1.2 last', leaf: true }] }, { nombre: '2', items: [{ nombre: '2.1 last', leaf: true }, { nombre: '2.2 last', leaf: true }] } ] }; var servicios = Ext.getStore('TreeStore'); servicios.add(data);
这是我尝试将数据添加到商店时遇到的错误:
TypeError: null is not an object (evaluating 'children.length')
请帮忙!!!!我不知道在哪里寻找错误,因为我发现的所有示例都与我的相同并且它们没有任何问题..