我创建了一个模型
Ext.define('MyApp.model.ContainerDetailsModel', {
extend: 'Ext.data.Model',
alias: 'model.ContainerDetailsModel',
config: {
fields: [
{
name: 'id',
allowNull: false,
type: 'string'
},
{
name: 'container_types_id',
type: 'string'
}
]
}
});
和这样的商店
Ext.define('MyApp.store.ContainerDetailsStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.ContainerDetailsModel'
],
config: {
model: 'MyApp.model.ContainerDetailsModel',
storeId: 'ContainerDetailsStore',
proxy: {
type: 'ajax',
enablePagingParams: false,
url: 'hereIsServiceUrl',
reader: {
type: 'json'
}
}
}
});
现在在应用程序的某个地方,我试图获得一条记录,例如:
var detailsStore = Ext.getStore("ContainerDetailsStore");
detailsStore.load();
var detailsRecord = detailsStore.last();
但它给了我不确定的。服务返回的 json 是可以的,它在不同的地方使用它作为列表的源。我已经尝试将 allowNull 更改为 true,但源中没有 null id。我尝试将类型设置为“int”,结果相同。
所以我试过了
console.log(detailsStore);
结果是这样的(只是重要的值):
Class {
...
loaded: true,
data: Class {
...
all: Array[1] {
length: 1,
0: Class {
container_types_id: "1",
id: "726",
....
}
...
}
...
},
...
}
在同一个地方
console.log(detailsStore.data);
返回(应该):
Class {
...
all: Array[1] {
length: 1,
0: Class {
container_types_id: "1",
id: "726",
....
}
...
}
但是(下一行)
console.log(detailsStore.data.all);
返回
[]
它是空数组。当我从商店尝试任何方法时,它说商店是空的。我一个接一个地写了console.log() 行——所以确保它们之间不会改变(我也以不同的顺序或组合尝试它)。
我的浏览器是 Google Chrome 23.0.1271.97 m 我使用来自https://extjs.cachefly.net/touch/sencha-touch-2.0.1.1/sencha-touch-all-debug.js的 Sencha
我怎样才能从那家商店拿唱片?