我正在寻找带有模型和商店的sencha触摸列表的教程/源代码。我在使用Sencha Touch 2.2.1时遇到了一些问题。
型号:
Ext.define("DeviceAPIFramework.model.OfferModel", {
extend: "Ext.data.Model",
config: {
fields: [
{ name: "description", type: "string" },
{ name: "id", type: "string" }
]
}
});
商店:
Ext.define("DeviceAPIFramework.model.OfferStore", {
extend: "Ext.data.Store",
config: {
storeId: "offerStore",
model:'DeviceAPIFramework.model.OfferModel'
}
});
控制器:
offerStore.add({description: 'test', id: 'my id'});
Ext.ComponentQuery.query('#offersListHomeView')[0].update();
查看:
Ext.require("DeviceAPIFramework.model.OfferStore");
var offerStore = Ext.create("DeviceAPIFramework.model.OfferStore");
Ext.define ...........
{
xtype: 'list',
width: Ext.os.deviceType == 'Phone' ? null : 1200,
height: Ext.os.deviceType == 'Phone' ? null : 350,
title: 'test',
itemId: 'offersListHomeView',
store: offerStore,
itemTpl: '{description} {id}'
}
图像:
从控制器执行代码后,会添加一个新行,但在列表的左上角还会添加一个奇怪的未定义文本。有关如何解决此问题的任何建议吗?
我也不喜欢视图外的变量offerStore。如果我把它放在控制器中,视图就会唠叨。
答案 0 :(得分:0)
undefined来自这一行:
Ext.ComponentQuery.query('#offersListHomeView')[0].update();
更新已解决(我写了,因为我使用旧的Sencha Touch版本开发一次并且此更新是必要的)并且将调用setHtml(),因为我们没有传递任何参数它是设置“未定义”,这将在我们的观点中显示。在新的sencha版本中,您只需删除此行即可。
我还在控制器中使用此代码管理了全局存储问题:
launch: function() {
this.offersStore = Ext.create('Ext.data.Store', {
model: 'DeviceAPIFramework.model.OfferModel'
});
Ext.ComponentQuery.query('#offersListHomeView')[0].setStore(this.offersStore);
},