对不起,如果标题不是最好的。
我在 Extjs 6 中粗略地编写了一个测试项目。我有一个 viewmodel 类,它使用了一个名为customers
:
Ext.define('ChildSessionBinding.view.main.ChildSessionModel',{
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.binding.childsession',
requires:[
'Ext.data.Store',
'ChildSessionBinding.model.Customer'
],
stores:{
customers:{
model: 'ChildSessionBinding.model.Customer',
autoLoad: true,
session: true
}
}
});
它需要的模型中有硬编码的测试数据:
Ext.define('ChildSessionBinding.model.Customer', {
extend: 'Ext.data.Model',
fields: [
{ name: 'name', type: 'auto' },
{ name: 'phone', type: 'auto' }
],
data:[
{name: 'test', phone: '12345'}
]
});
使用 ViewModel 的视图只是一个显示简单网格的面板:
Ext.define('ChildSessionBinding.view.main.ChildSession', {
extend: 'Ext.panel.Panel',
xtype: 'binding-child-session',
title: 'Binding Child Session Demo',
layout: {
type: 'vbox',
align: 'stretch'
},
viewModel: {
type: 'binding.childsession'
},
controller: 'binding.childsession',
session: true,
items:[
{
flex: 1,
xtype: 'grid',
bind: '{customers}',
columns:[
{
dataIndex: 'name',
flex: 1,
text: 'Name'
},
{
dataIndex: 'phone',
flex: 1,
text: 'Phone'
},
{
xtype: 'widgetcolumn',
width: 90,
widget: {
xtype: 'button',
text: 'Edit',
handler: 'onEditCustomerClick'
}
}
]
}
]
});
当我在浏览器中加载它时,网格不会加载。我打开了 javascript 控制台,看到它正在尝试使用模型的完全限定名称向服务器发出 get 请求:
我已经将它与我试图复制的厨房水槽示例以及我在其他项目中创建的其他视图模型商店进行了比较,但我没有看到任何会导致这种情况的东西。
此外,为了排除任何项目文件结构问题,这里是文件夹/文件结构:
编辑
这是来自 javascript 控制台的堆栈跟踪:
有人看到问题了吗?