我尝试使用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之类的东西更像是如何实现我需要的东西。
答案 0 :(得分:1)
要识别窗口小部件类型,不要创建新的表单实例。
您必须使用Ext.define
定义新的派生类。