Sencha touch 从数组对象sencha touch构建列表

Sencha touch 从数组对象sencha touch构建列表,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我是sencha touch的新手,正在尝试从数组构建列表。我使用Ext.data.ArrayStore时遇到问题 我的代码: var ListStore=new Ext.data.ArrayStore({ 自动加载:myData, 自动销毁:对, storeId:'myStore', //读卡器配置 指数:0, 字段:[ “产品”, {name:'product',type:'string'}, {name:'id',type:'string'} ] }); 包括列表的面板代码

我是sencha touch的新手,正在尝试从数组构建列表。我使用
Ext.data.ArrayStore
时遇到问题

我的代码:

var ListStore=new Ext.data.ArrayStore({
自动加载:myData,
自动销毁:对,
storeId:'myStore',
//读卡器配置
指数:0,
字段:[
“产品”,
{name:'product',type:'string'},
{name:'id',type:'string'}
]       
});
包括列表的面板代码:

var listPanel=新的外部面板({
摘要:[{
xtype:'工具栏',
ui:“轻”,
标题:“产品列表”,
项目:[{
文本:“返回”,
ui:'返回',
处理程序:反向处理程序
}]
}],
布局:“适合”,
滚动:‘垂直’,
样式:“背景色:#FFFFF”,
项目:[
{
xtype:“列表”,
商店:ListStore,
itemTpl:“{product}”,
对,,
indexBar:对
}]
首先创建一个模型

Ext.regModel('Demo', {
    fields: [
        {name: 'id', type: 'string'},
        {name: 'product',  type: 'string'}
    ]
});
然后创建存储:

new Ext.data.Store({
    model: 'Demo',
    data : [
        {id: '1',    product: 'Spencer'}
    ]
});
据我从代码中了解,在Store的“autoLoad”选项中,它应该是boolean或object,而不是数据,而是Store load()的选项方法。

首先,您的答案似乎完全正确。创建这样的存储,在创建
Ext.data.store
实例时,将数据作为
data
config选项传递

如果您已经
Ext.define()
-ed了自己的存储子类(没有代理),那么您可以在
create()
实例时添加数据,如下所示:

Ext.define('MyApp.store.MyStore', {
    extends: 'Ext.data.store',
    model: 'Demo'
});

myStore = MyApp.store.MyStore({data: arrayOfDemoItems});
或者,如果您已经有一个存储实例(例如,由控制器自动创建):


你得到的问题或输出是什么?如果你希望有人帮助你,你真的必须告诉我们你得到了什么错误或什么结果是错误的。如果你不解释问题,没有人能帮助你。基本上,我从web服务得到一个json对象,我想用sencha touch创建一个列表。我试图找到任何合适的例子来做这件事,然后没有找到。所以,如果你能给我一个例子,我会很高兴感谢你的快速响应,我找到了一个例子如何建立一个简单的列表与“静态”数据。我想用var中的数组替换静态数据。我得到的错误是:DataView要求定义tpl、store和itemSelector配置。我尝试使用autoLoad进行此操作,但没有成功…简而言之,我想用包含我的数据的array\json对象替换数据。P.S我已经获取json对象,但我没有“不需要使用代理…您可以共享您在此处使用的数据格式吗?并将最新的存储定义也放入其中。”。
Ext.define('MyApp.controller.MyController',{
    extend: 'Ext.app.Controller',
    stores: ['MyStore'],
    init: function () {
        // You add your items here
        var myStore = this.getMyStoreStore();
        myStore.data.addAll(this.getMyItemsSomehow(););
        // Note that the 'load' event is not fired if you load elements like this,
        // you have to do it manually if you have e.g. a DataView tied to the store:
        myStore.fireEvent('load', myStore);
    },
    getMyItemsSomehow: function () {
        // Return an array of items somehow...
        return [{id: 1, product: 'Spencer'}];
    }
});