无法在Sencha Touch中获取商店记录字段值

时间:2013-01-08 20:54:49

标签: javascript sencha-touch-2 store

当我尝试使用Sencha Touch 2在ArrayStore中查找记录时,不会返回任何记录。

store.findExact('Symbol', 'GOOG')

返回-1。

如下面的屏幕截图所示,

store.getRange()

返回44条记录,

store.first()

返回记录,但

store.first().get('Ask')

返回undefined。

另外,当我做

store.getAt(1).getData()

我得到的对象只包含字段'id:“ext-record-2”'。

为什么我不能使用store.findExact()检索记录,为什么record.get('column')返回undefined?

enter image description here

1 个答案:

答案 0 :(得分:0)

发现问题......

我试图在ExtJS和Sencha Touch应用程序中重用模型。 Sencha Touch希望“字段”在“config”中定义,而ExtJS则不会。

ExtJS的:

Ext.define('MyModel', {
  extend: 'Ext.data.Model',
  fields: [
    {name: 'Symbol',    type: 'string'},
    {name: 'LastPrice', type: 'float'},
    {name: 'Bid',       type: 'float'},
    {name: 'Ask',       type: 'float'},
    {name: 'Volume',    type: 'int'},
    {name: 'Close',     type: 'float'}
  ]
});

Sencha Touch:

Ext.define('MyModel', {
  extend: 'Ext.data.Model',
  config: {
    fields: [
      {name: 'Symbol',    type: 'string'},
      {name: 'LastPrice', type: 'float'},
      {name: 'Bid',       type: 'float'},
      {name: 'Ask',       type: 'float'},
      {name: 'Volume',    type: 'int'},
      {name: 'Close',     type: 'float'}
    ]
  }
});

解决方法:

var myModelConfig = {
  extend: 'Ext.data.Model',
  config: {
    fields: [
      {name: 'Symbol',    type: 'string'},
      {name: 'LastPrice', type: 'float'},
      {name: 'Bid',       type: 'float'},
      {name: 'Ask',       type: 'float'},
      {name: 'Volume',    type: 'int'},
      {name: 'Close',     type: 'float'}
    ]
  }
};
myModelConfig.fields = myModelConfig.config.fields;
Ext.define('MyModel', myModelConfig);