在admin-dashboard中使用RowExpander插件

时间:2017-07-08 02:28:49

标签: extjs plugins

我正在运行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等),以便正确呈现。

0 个答案:

没有答案