Sencha触摸列表与模型和商店

时间:2013-07-05 23:22:33

标签: javascript list extjs sencha-touch

我正在寻找带有模型和商店的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}'
}

图像:

Image of List

从控制器执行代码后,会添加一个新行,但在列表的左上角还会添加一个奇怪的未定义文本。有关如何解决此问题的任何建议吗?

我也不喜欢视图外的变量offerStore。如果我把它放在控制器中,视图就会唠叨。

1 个答案:

答案 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);
},