【问题标题】:Sencha Touch 2: Set a store from an arraySencha Touch 2:从数组中设置存储
【发布时间】:2012-11-07 22:54:39
【问题描述】:

我正在尝试创建一个商店,然后我可以从中创建一个列表。问题是当我创建商店时,它是空的。

这是我的模型:

Ext.define('MyApp.model.TrackingCode', {
    extend: 'Ext.data.Model',

    config: {
        fields: [
            'id',
            'code',
            'count'
        ]
    }
});

这是我试图填充商店的代码:

var tc = [{id: 1, code: 'abc', count: 5}];
var store = Ext.create('Ext.data.Store', {
  model: 'MyApp.model.TrackingCode',
  data: tc
});

console.log(store) 的摘要;显示这个:

类{_proxy: Class, data: Class, _totalCount: null, eventDispatcher: Class, initialConfig: Object…}

总计数值显示为空,所以我认为我的商店没有人满。

任何见解都将不胜感激。

【问题讨论】:

  • 为什么要即时创建商店?为什么不先创建它,然后再设置它的数据?也只是一个快速的想法,尝试将模型设置为“TrackingCode”而不是“MyApp.model.TrackingCode”
  • 未使用 TrackingCode 的完整引用时找不到模型。跟踪代码数组实际上来自另一家商店的一个字段,比如“书籍”。我有一个显示书名和图像的轮播,然后我需要在跟踪代码数组的同一个轮播幻灯片上的该 HTML 下制作一个列表。我是ST新手,也许有更好的方法。

标签: sencha-touch extjs sencha-touch-2


【解决方案1】:
当您通过内联加载数据时,

_totalCount 将为空。当您从服务器加载数据时,_totalCount 会有一些值。简而言之,_totalCount 是指服务器中的总数据集。所以不用担心。

试试这个

console.log(store.getCount());

这将返回存储中加载的数据的确切计数。如果它返回一些值,那么您的代码是好的。

【讨论】:

  • 谢谢,商店实际上正在被填充,这帮助我弄清楚它所填充的数据需要采用不同的格式。
【解决方案2】:

您必须将“数据”属性放在 Store 的 config 对象中,如下所示:

var tc = [{id: 1, code: 'abc', count: 5}];
var store = Ext.create('Ext.data.Store', {
  model: 'MyApp.model.TrackingCode',
  config : {
    data: tc
  }
});

【讨论】:

  • 如果我在 config.xml 中定义数据,我附加此商店的列表将不会填充。它现在在配置之外工作正常。
猜你喜欢
  • 2012-07-24
  • 2012-09-13
  • 1970-01-01
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
相关资源
最近更新 更多