1

当我尝试使用 Sencha Touch 2 在 ArrayStore 中查找记录时,没有返回记录。

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

返回 -1。

如下图所示,

store.getRange()

返回 44 条记录,并且

store.first()

返回一条记录,但是

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

返回未定义。

另外,当我这样做时

store.getAt(1).getData()

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

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

在此处输入图像描述

4

1 回答 1

0

发现问题...

我试图在 ExtJS 和 Sencha Touch 应用程序中重用一个模型。Sencha Touch 期望在“config”中定义“fields”,而 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'}
  ]
});

煎茶触摸:

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);
于 2013-01-08T22:27:45.437 回答