【问题标题】:Sencha Touch List with Model and StoreSencha Touch List with Model and Store
【发布时间】:2013-07-04 02:20:12
【问题描述】:

我正在寻找带有模型和商店的煎茶触摸列表的教程/源代码。我在使用 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。如果我把它放在控制器中,视图就会唠叨。

【问题讨论】:

  • 张贴列表截图..这样问题会更清楚...
  • @Viswa 我上传了列表的截图。对不起,我忘记了。
  • 一切看起来都很好,我找不到导致每个列表项中未定义文本的原因,并且不需要 'Ext.ComponentQuery.query('#offersListHomeView')[0].update ();'.. 列表中的更新方法也已弃用。
  • 您可以通过浏览器中的inspect元素找到未定义文本的原因..检查生成的html
  • @Viswa 感谢使用检查元素进行提示调试。 oi41.tinypic.com/4l68td.jpg 有一个“未定义”的 div 元素。我使用了新方法 setHTML(),update 也使用了这个方法,因为我没有传递任何参数,所以它附加了 undefined ...

标签: javascript list extjs sencha-touch


【解决方案1】:

未定义来自这一行:

Ext.ComponentQuery.query('#offersListHomeView')[0].update();

更新被破坏(我写了它,因为我曾经使用旧的 Sencha Touch 版本进行开发,并且这个更新是必要的)并且将调用 setHtml(),因为我们没有传递任何参数它是设置“未定义”,这将在我们看来。在新的煎茶版本中,您可以简单地删除这一行。

我还用控制器中的这段代码管理了全局存储问题:

launch: function() {
    this.offersStore = Ext.create('Ext.data.Store', {
        model: 'DeviceAPIFramework.model.OfferModel'
    });

    Ext.ComponentQuery.query('#offersListHomeView')[0].setStore(this.offersStore);
},

【讨论】:

    猜你喜欢
    • 2011-11-26
    • 2012-07-20
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多