Session ExtJS 5.0.1:无法在会话中使用匿名模型
我得到了这个错误: [E] Ext.data.Session.checkModelType():无法使用匿名模型 开会 通过ViewModel将网格与存储绑定时尝试使用会话时: 视图模型:Session ExtJS 5.0.1:无法在会话中使用匿名模型,session,extjs,mvvm,data-binding,extjs5,Session,Extjs,Mvvm,Data Binding,Extjs5,我得到了这个错误: [E] Ext.data.Session.checkModelType():无法使用匿名模型 开会 通过ViewModel将网格与存储绑定时尝试使用会话时: 视图模型: Ext.define('App.view.gridViewModel', { extend: 'Ext.app.ViewModel', alias: 'viewmodel.gridview', stores:{ gr
Ext.define('App.view.gridViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.gridview',
stores:{
gridstore: {
model: 'gridView',
autoLoad: true,
//This triggers the Exception:
session: true,
listeners: {
beforeload: function(store, operation, eOpts) {
var oProxy = this.getProxy();
oProxy.setExtraParams({
tableName: 'dbo.SomeTable'
, identityKey: "id"
, primaryKey: ["id"]
, mode: "readonly"
, lang: "es"
, output: 'json'
});
}
}
}
}
});
Ext.define('App.view.gridView', {
extend: 'Ext.form.Panel',
//...
viewModel: {
type: 'gridview'
},
controller: 'gridview',
// Create a session for this view
session:true,
items: [{
xtype: 'grid',
reference: 'myGrid',
bind: '{gridstore}',
columns: [
//...
]
}]
//...
});
查看:
Ext.define('App.view.gridViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.gridview',
stores:{
gridstore: {
model: 'gridView',
autoLoad: true,
//This triggers the Exception:
session: true,
listeners: {
beforeload: function(store, operation, eOpts) {
var oProxy = this.getProxy();
oProxy.setExtraParams({
tableName: 'dbo.SomeTable'
, identityKey: "id"
, primaryKey: ["id"]
, mode: "readonly"
, lang: "es"
, output: 'json'
});
}
}
}
}
});
Ext.define('App.view.gridView', {
extend: 'Ext.form.Panel',
//...
viewModel: {
type: 'gridview'
},
controller: 'gridview',
// Create a session for this view
session:true,
items: [{
xtype: 'grid',
reference: 'myGrid',
bind: '{gridstore}',
columns: [
//...
]
}]
//...
});
通过代理获取模型的数据:
型号:
Ext.define('App.view.gridViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.gridview',
stores:{
gridstore: {
model: 'gridView',
autoLoad: true,
//This triggers the Exception:
session: true,
listeners: {
beforeload: function(store, operation, eOpts) {
var oProxy = this.getProxy();
oProxy.setExtraParams({
tableName: 'dbo.SomeTable'
, identityKey: "id"
, primaryKey: ["id"]
, mode: "readonly"
, lang: "es"
, output: 'json'
});
}
}
}
}
});
Ext.define('App.view.gridView', {
extend: 'Ext.form.Panel',
//...
viewModel: {
type: 'gridview'
},
controller: 'gridview',
// Create a session for this view
session:true,
items: [{
xtype: 'grid',
reference: 'myGrid',
bind: '{gridstore}',
columns: [
//...
]
}]
//...
});
Ext.define(“App.model.gridView”,{
扩展:“Ext.data.Model”
schema: {
namespace: 'App.model'
},
proxy: {
//proxy remote api stuff......
}.
idProperty: 'id'.
primaryKeys: 'id'.
fields: [
//fields
]
}))
我不知道什么是匿名模式,也没有在网上找到任何相关信息,有什么想法吗?
提前感谢原因似乎是,在我的服务器响应中,我有一个名为“metaData”的JSON对象,它与JSON Reader中可用的对象冲突: 响应元数据 服务器可以在其响应中返回元数据,除了 记录数据,描述数据集本身的属性或 用于重新配置读卡器。要在响应中传递元数据,请执行以下操作: 只需向响应数据的根添加元数据属性。这个 元数据属性可以包含任何内容,但支持特定的集合 由读取器处理的属性(如果存在): 奇怪的是,我没有为JSON阅读器使用任何可用的元数据选项,与任何匿名模型无关,因此这可能被认为是一个bug