Javascript 全局存储中的硬编码数据不显示在extjs网格中
我有一个extjs全局存储,我用字段和数据进行了硬编码:Javascript 全局存储中的硬编码数据不显示在extjs网格中,javascript,extjs,extjs6-classic,Javascript,Extjs,Extjs6 Classic,我有一个extjs全局存储,我用字段和数据进行了硬编码: Ext.define('Registration.store.SavedSessions',{ extend: 'Ext.data.Store', storeId: 'savedsessions', fields:[ "id", "title", "dateStart" ], data: [ { id: 1,
Ext.define('Registration.store.SavedSessions',{
extend: 'Ext.data.Store',
storeId: 'savedsessions',
fields:[
"id",
"title",
"dateStart"
],
data: [
{
id: 1,
title: 'test',
dateStart: new Date()
}
]
});
通过Application.js文件注册全局存储:
Ext.define('Registration.Application', {
extend: 'Ext.app.Application',
name: 'Registration',
stores: [
'SavedSessions'
],
...
我还尝试将存储加载到一个网格中:
Ext.define("Registration.view.cart.savedsessions.SavedSessions",{
extend: "Ext.grid.Panel",
xtype: 'savedsessions',
store: Ext.data.StoreManager.lookup('savedsessions'),
columns:[
{
text: 'Date',
dataIndex: 'dateStart'
},
{
text: 'Title',
dataIndex: 'title',
flex: 1
}
]
});
看看这些文件,这一切看起来都是正确的。我遇到的问题是商店没有加载
当我打开javascript控制台并计算网格存储中的记录数时,我得到0:
考虑到数据是硬编码到存储中的,我根本不知道这是怎么发生的
此外,当我直接从javascript控制台获取存储时,我可以获得硬编码数据:
我在这里遗漏了什么?为什么要使用
StoreManager
获取store
?只需使用:
为什么要使用
StoreManager
获取存储
?只需使用:
谢谢这肯定解决了问题。我急匆匆地穿过马路,经过了马路。我还没有使用过很多全局商店(我主要使用viewmodel中的商店),出于某种原因,我认为storeId是您使用storemanager查找商店所需要的。谢谢你指出这是不需要的。也就是说,你知道为什么当通过商店经理提取时,它会获取商店而不是硬编码的数据吗?可能有几个原因。它可能是加载视图和存储的顺序,框架加载和实例化视图和其他对象的方式。框架首先加载所有类声明,然后仅在需要时实例化这些类。因此,在实例化存储之前,已经加载了视图声明。请记住,在视图声明中从不使用对象。不要使用管理器(我从来没有使用过),不要使用
new
或其他任何东西。明白了。感谢您的进一步澄清,并一如既往地感谢您的帮助。谢谢。这肯定解决了问题。我急匆匆地穿过马路,经过了马路。我还没有使用过很多全局商店(我主要使用viewmodel中的商店),出于某种原因,我认为storeId是您使用storemanager查找商店所需要的。谢谢你指出这是不需要的。也就是说,你知道为什么当通过商店经理提取时,它会获取商店而不是硬编码的数据吗?可能有几个原因。它可能是加载视图和存储的顺序,框架加载和实例化视图和其他对象的方式。框架首先加载所有类声明,然后仅在需要时实例化这些类。因此,在实例化存储之前,已经加载了视图声明。请记住,在视图声明中从不使用对象。不要使用管理器(我从来没有使用过),不要使用new
或其他任何东西。明白了。感谢您的进一步澄清,并一如既往地感谢您的帮助。
store: 'savedsessions',