Treestore的动态表单

时间:2017-08-22 18:24:28

标签: extjs dynamic tree widget alias

我尝试使用ExtJS 6.2.1和admin-dashboard模板创建动态表单(最终使用AJAX代理将JSON从服务器传递到ExtJS以进行表单定义)。

在我的Application.js中,在launch函数中,我添加了一个没有控件的简单表单:

var form = Ext.create('Ext.form.Panel', {
            title: 'Testing 1, 2, 3...',
            alias: 'widget.test-form',
            bodyPadding: 5,
            width: 350,

            layout: 'anchor',
            defaults: {
                anchor: '100%'
            }

        });

我不希望在任何地方渲染它,而是让它可以访问我的Treestore菜单,如:

{
    text: 'Dynamic Test',
    iconCls: 'x-fa fa-check',
    viewType: 'test-form',
    leaf: true
}

当我进行构建时,所有内容都编译得很好,但是当我尝试从菜单访问该表单时,我收到404错误:

[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (test-form.js, line 0)
Error: [Ext.create] Unrecognized class name / alias: widget.test-form

如何让Treestore看到我在发布时创建的表单?我也尝试了一个xtype而不是一个小部件的别名,但基本上得到了相同的错误。更一般地说,如何使form创建的launch变量可用于应用,以便我可以根据需要访问它?

**编辑**

我还尝试在表单面板中添加我的应用launch功能:

Ext.define('Admin.form.TestDyno', {
            extend: 'Ext.panel.Panel',
            alias: 'widget.test-form',

            title: 'Testing 1, 2, 3...',
            bodyPadding: 5,
            width: 350,

            layout: 'anchor',
            defaults: {
                anchor: '100%'
            }

         });

但是,当我运行应用程序时,出现错误:

log — Util.js:881[E] [Loader] The following classes failed to load:
log — Util.js:881[E] [Loader] Admin.form.TestDyno from classic/src/Application.js

我是否必须在文件中定义表单,然后在应用程序启动时初始化组件?我当然可以这样做,但能够在launch中进行表单定义会更好。我认为像launch-function-(Application)-and-set-parameters-on-the-component之类的东西更像是如何实现我需要的东西。

1 个答案:

答案 0 :(得分:1)

要识别窗口小部件类型,不要创建新的表单实例。

您必须使用Ext.define定义新的派生类。