gpt4 book ai didi

extjs - 扩展 Ext.panel.Panel 的正确方法?

转载 作者:行者123 更新时间:2023-12-03 14:03:24 24 4
gpt4 key购买 nike

我正在使用 Ext JS 4.1.1 为网页创建 GUI。我尝试创建一个组件(下面的“GeneSearchComponent”),我可以在更复杂的布局中使用它。但出于某种原因,我无法将“GeneSearchComponent”的实例插入到 hpanel 中。在扩展预定义的“Ext.panel.Panel”类(以及创建我自己的“小部件”)时我错过了什么?

如果我删除对“Ext.create('gene-search-component', ...)”的调用,一切正常;如果我把它放回去,一切都会崩溃。我想知道为什么.

(我没有包含“gene-combobox”的定义。我非常确信这不是我问题的根本原因。)

感谢您的宝贵时间!

torch

Ext.define('GeneSearchComponent', {
extend: 'Ext.panel.Panel',
alias: ['gene-search-component'],
constructor: function(cnfg) {
this.callParent(arguments);
this.initConfig(cnfg);
},
config: {
collapsible: true,
frame: true,
title: 'Search',
bodyPadding: '15 15 15 15',
width: 350,
layout: {
type: 'vbox',
align: 'left'
},
items: [
Ext.widget('gene-combobox', {
id: 'comboboxid'
}),
Ext.create('Ext.Button', {
text: 'Search',
handler: function() {
dosomething();
}})]
},
onRender: function() {
this.callParent(arguments);
}
});

Ext.application({
name: 'FW',
launch: function() {
var bd = Ext.getBody();
var div = Ext.get("search_form");

var hpanel = Ext.create('Ext.panel.Panel', {
id: 'horizontal-panel',
title: "HBoxLayout Panel",
layout: {
type: 'hbox',
align: 'middle'
},
items: [
Ext.create('Ext.container.Container', {
id: 'another-panel',
title: "VBoxLayout Panel",
width: 250,
layout: {
type: 'vbox',
align: 'left'
},
items: [{
xtype: 'panel',
width: 250,
title: ' Panel One',
flex: 2
},{
xtype: 'panel',
width: 250,
title: ' Panel Two',
flex: 1
},{
xtype: 'panel',
width: 250,
title: ' Panel Three',
flex: 1
}]}),
Ext.create('gene-search-component', {
id: 'searchPanel',
})],
renderTo: div,
});
}
});

最佳答案

问题是您在配置别名时没有给 gene-search-component widget 命名空间。

alias: 'widget.gene-search-component'

另外,为了回应您的 OP 上的评论,您正在按照自己的方式进行大量不必要的输入来创建组件。您应该使用 xtype 字段而不是到处使用 Ext.Create。我已经修改了您的代码以向您展示它可以变得多么简单。

http://jsfiddle.net/hzXx8/

关于extjs - 扩展 Ext.panel.Panel 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com