我完成了我的项目Build并且收到错误,我的应用程序无法识别会话存储。
proxy: {
type: 'sessionstorage',
id: 'sessionTimeline',
reader: {
type: 'json',
rootProperty: 'query'
}
}
当我将类型更改为“内存”时,我的代码工作正常,但类型必须是sessionstorage,因为我想在刷新页面时保存商店中的所有数据。
未捕获错误:[Ext.createByAlias]无法识别的别名: proxy.sessionstorage 在Ext.Inventory.instantiateByAlias(app.js?_dc = 1493205201288:13481) 在Object.createByAlias(app.js?_dc = 1493205201288:5423) 在constructor.applyProxy(app.js?_dc = 1493205201288:85923) 在constructor.setter [as setProxy](app.js?_dc = 1493205201288:9021) 在构造函数。 (app.js _dc = 1493205201288:9000) 在constructor.createImplicitModel(app.js?_dc = 1493205201288:86564) 在constructor.applyFields(app.js?_dc = 1493205201288:85893) 在constructor.setter [as setFields](app.js?_dc = 1493205201288:9021) 在Ext.Configurator.configure(app.js?_dc = 1493205201288:9610) 在constructor.initConfig(app.js?_dc = 1493205201288:11119)
我不知道什么是错误的,因为我的应用程序可以在构建之前识别会话存储,我试图在很多方面解决这个问题,但是真的很难,因为app.js是紧凑的。
我的会话存储代码:
Ext.define('ES.store.Timeline', {
extend: 'Ext.data.Store',
alias: 'store.timeline',
storeId: 'timeline',
fields: [{
name: 'vid',
type: 'int'
}, {
name: 'time',
type: 'string'
}, {
name: 'lat',
type: 'float'
}, {
name: 'lng',
type: 'float'
}, {
name: 'address',
type: 'string'
}, {
name: 'dir',
type: 'string'
}, {
name: 'vel',
type: 'string'
}, 'hidden'],
pageSize: 500,
autoSync: true,
sorters: [{
property: 'time',
direction: 'DESC'
}],
data: {
query: []
},
proxy: {
type: 'sessionstorage',
id: 'sessionTimeline'
},
filters: [{
property: 'hidden',
value: false
}]
});
我在视图上调用会话存储:
...
store: {
type: 'timeline'
},
...
如何修复该错误?谢谢。
答案 0 :(得分:0)
您的商店缺少要求:
requires:[
'Ext.data.proxy.SessionStorage'
]
这告诉ExtJS在构建商店之前加载文件data/proxy/SessionStorage.js
。只有在加载data/proxy/SessionStorage.js
文件时,才会注册别名proxy.sessionstorage
,因此代理工厂可以正确地实例化代理。