我正在运行ExtJS 6.2.0,并正在修改 admin-dashboard 模板。我通过发出命令
创建了仪表板sencha -sd /path/tol/ext-6x generate app -s /path/to/ext-6.x/templates/admin-dashboard/ APP_NAME /path/to/project
根据此帖子create admin dashboard template
我现在正在尝试添加一个新页面,其中包含Ext.panel.Panel
和NavigationTree.js下的网格。它正确地完成了所有绑定,并且加载非常精彩,但我无法添加插件(特别是RowExpander
插件)。
我的观点定义是
Ext.define('Admin.view.pages.Procedure', {
extend: 'Ext.panel.Panel',
xtype: 'procedure',
requires: [
'Ext.panel.Panel',
'Admin.model.Patient',
'Admin.model.Procedure'
],
anchor : '100% -1',
width: 1000,
height: 1000,
referenceHolder: true,
layout: {
type: 'hbox',
align: 'stretch'
},
viewModel: {
stores: {
patients: {
model: 'Admin.model.Patient',
autoLoad: true
}
}
},
session: {},
items: [
{
title: 'Procedures',
xtype: 'grid',
bind: '{patientCombo.selection.procedures}',
flex: 1,
margin: '0 0 0 10',
columns: [{
text: 'Procedure Date', dataIndex: 'proc_date', flex: 1
}, {
text: 'Procedure', dataIndex: 'proc_name', flex: 1
}],
// TODO: why is this erroring out?!
plugins: [{
ptype: 'rowexpander',
rowBodyTpl : new Ext.XTemplate(
'<p><b>Proc Name Orig:</b> {proc_name_orig}</p>',
'<p><b>Proc Code:</b> {proc_code}</p>',
'<p><b>Proc Code Type:</b> {proc_code_type}</p>')
}],
viewConfig: {
emptyText: 'No procedures',
deferEmptyText: false
}
}
});
当我注释掉插件引用时,哪个加载很好,但是当取消注释时,我收到错误
错误:[Ext.create]指定了无效的类名或别名'null',必须 是一个非空字符串。
作为测试,我将ptype
更改为不存在的插件类型并且它给出了相同的错误,这使我相信源文件中的某些东西是棘手的或者沿着这些行。
作为另一项测试,我注意到访问该页面的网址是:
http://localhost:63343/test-dash/?modern#procedure
但是,当我将其更改为经典工具包(使用url时) http://localhost:63343/test-dash/?classic#procedure)它加载得很好。
我使用命令
完成了构建sencha app build -c classic
所以我不确定它为什么要访问现代工具包。如何在现代工具包中获得对插件的引用?我查看了源代码,文件RowExpander.js
就在那里。或者,更好的是,如何在没有现代工具包的情况下创建 admin-dashboard ?
在旁注中,当我创建admin-template
时,我确实需要物理复制几个css文件(Admin-all.css
等),以便正确呈现。