wbr2005
2010-09-02 18:05 浏览 266

ext designer 组件定义引用方式

这是用ext designer 自动生成的代码,我想讲items里json格式panel定义直接用panel类名替代,不知可不可行。
[code="java"]MyViewportUi = Ext.extend(Ext.Viewport, {
layout: 'border',
initComponent: function() {
this.items = [
{
xtype: 'panel',
title: 'My Panel',
region: 'center'
},
{[color=red][/color]
xtype: 'panel',
title: 'My Panel',
region: 'west',
width: 100
},
{
xtype: 'panel',
title: 'My Panel',
region: 'east',
width: 100
}
];
MyViewportUi.superclass.initComponent.call(this);
}
});
[/code]
以下是ext designer 生成的viewport和panel的类定义
[color=red]viewport定义[/color][code="java"]MyViewportUi = Ext.extend(Ext.Viewport, {
layout: 'border',
initComponent: function() {
this.items = [
{
xtype: 'panel',
title: 'My Panel',
region: 'center'
},
{
xtype: 'panel',
title: 'My Panel',
region: 'west',
width: 100
},
{
xtype: 'panel',
title: 'My Panel',
region: 'east',
width: 100
}
];
MyViewportUi.superclass.initComponent.call(this);
}
});
[/code]
[color=red]panel定义[/color]
[code="java"]
MyPanelUi = Ext.extend(Ext.Panel, {
title: 'My Panel',
region: 'center',
initComponent: function() {
MyPanelUi.superclass.initComponent.call(this);
}
});
MyPanel1Ui = Ext.extend(Ext.Panel, {
title: 'My Panel',
region: 'west',
width: 100,
initComponent: function() {
MyPanel1Ui.superclass.initComponent.call(this);
}
});
MyPanel2Ui = Ext.extend(Ext.Panel, {
title: 'My Panel',
region: 'east',
width: 100,
initComponent: function() {
MyPanel2Ui.superclass.initComponent.call(this);
}
});

[/code]
我的想法是viewport中items不用json格式了,而是直接用panel的类名定义,如下面代码所示,不知可行,可有类似方法?
[code="java"]
MyViewportUi = Ext.extend(Ext.Viewport, {
layout: 'border',
initComponent: function() {
this.items = [
MyPanelUi,
MyPanel1Ui,
MyPanel2Ui

    ];
    MyViewportUi.superclass.initComponent.call(this);
}

});

[/code]

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答 默认 最新

  • 已采纳
    lizhiyezi lizhiyezi 2010-09-02 21:04

    对。

    点赞 评论 复制链接分享
  • lizhiyezi lizhiyezi 2010-09-02 20:26

    不行,必须加 new
    this.items = [

    new MyPanelUi(),

    new MyPanel1Ui(),

    new MyPanel2Ui()

        ];  
    
    点赞 评论 复制链接分享
  • lizhiyezi lizhiyezi 2010-09-02 20:36

    恩,不过你在使用MyViewportUi的时候必须要保证MyPanelUi要被加载了。

    点赞 评论 复制链接分享
  • lizhiyezi lizhiyezi 2010-09-02 20:53

    js 是顺序执行的,明白你就清楚了。
    你可以写在 Ext.onReady(function(){});//函数里就行了。该函数等body加载完成才执行

    点赞 评论 复制链接分享

相关推荐