Sencha touch 从数组对象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'} ] }); 包括列表的面板代码
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'}];
}
});