我正在尝试将组合框添加到ExtJS中的浮动(弹出)表单面板中。但我得到一个“无法设置属性'组件'的错误”错误,窗口将无法加载。
我在控制器中使用以下代码来创建窗口:
onTreeAddDocClick: function () {
var f = new Ext.form.Panel({
frame: false,
header: false,
floating: true,
closable: true,
items: [{
xtype: 'addDoc'
}]
});
f.show();
}
窗口本身的代码如下:
Ext.define('OPENhrm.view.dossier.widget.popup.AddDoc', {
extend: 'Ext.form.Panel',
xtype: 'addDoc',
requires: [
'Ext.layout.container.VBox'
],
controller: "dossier-addDoc",
viewModel: {
type: "dossier-addDoc"
},
id: 'addDocForm',
frame: true,
title: 'Add document',
width: 400,
bodyPadding: '10 10 0',
layout: 'form',
closable: true,
defaults: {
anchor: '100%',
allowBlank: false,
msgTarget: 'side',
labelWidth: 50
},
items: [{
// item selector
xtype: 'filefield',
emptyText: 'Select Document',
fieldLabel: 'Document',
name: 'filePath',
id: 'filePath',
buttonText: 'upload document',
buttonConfig: {
icon : '/resources/images/icons/add.jpg'
}
}, {
xtype: 'combo',
fieldLabel: 'Test',
hiddenName: 'test',
store: new Ext.data.SimpleStore({
data: [
['Test1'],
['Test2']
],
id: 0,
fields: ['text']
}),
valueField: 'text',
displayField: 'text',
triggerAction: 'all',
editable: false
}],
// buttons
buttons: [{
text: 'Add',
handler: 'onAddDockClick'
}, {
text: 'Reset',
handler: function () {
this.up('form').getForm().reset();
}
}]
});
如果我取下组合框,窗口就可以了。如果我将组合框放在应用程序中的其他位置(例如,在包含2个面板的页面上;搜索过滤器/表单和带有搜索结果的网格),它就可以正常工作。然而,该其他页面不是浮动/弹出窗口。
我通过在控制器中定义整个页面来实现它,但是当我使用MVC结构时,这似乎不太可能。有没有人知道如何让组合框在浮动窗口中工作,而不将该窗口的整个代码放在控制器中?