当我尝试使用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?
答案 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);