Javascript 在extjs中重复一个自定义元素

Javascript 在extjs中重复一个自定义元素,javascript,extjs,Javascript,Extjs,我有一个应用程序,我必须在一个页面上重复一个自定义组件200次,并保存每个组件的引用。我尝试使用for循环添加它,但这样做会导致脚本错误。有没有其他方法可以在extjs中重复自定义组件? 这是我正在使用的代码 Ext.application({ requires: ['Ext.container.Viewport'], name: 'Excel', launch: function() { Ext.define('ExcelCell',{ extend: 'Ext

我有一个应用程序,我必须在一个页面上重复一个自定义组件200次,并保存每个组件的引用。我尝试使用for循环添加它,但这样做会导致脚本错误。有没有其他方法可以在extjs中重复自定义组件? 这是我正在使用的代码

Ext.application({
requires: ['Ext.container.Viewport'],
name: 'Excel',

launch: function() {
    Ext.define('ExcelCell',{
           extend: 'Ext.panel.Panel',
           itemcls: 'excelCell',
           height: 20,
           width: 64
        });

    var port = Ext.create('Ext.container.Viewport', {
        layout: 'absolute'
    });


    var totalRowsToDraw = port.height/20;
    var totalColumnsToDraw = port.width/64;

    var cellDictionary = new Object();
    var cell;

    for(var r=0; r < totalRowsToDraw ;r++){
        for(var c=0; c < totalColumnsToDraw ;c++){
            cell = Ext.create('ExcelCell');
            cell.x = c*64;
            cell.y = r*20;
            port.add(cell);
            cellDictionary[r+','+c] = cell;
        }
    }
}
});

你的代码工作得很好。我唯一想到的是,也许你想从其他方法中使用
cellDictionary

如果是这种情况,并且您希望使其全局可访问,而不是:

var cellDictionary = {};
您必须执行以下操作:

Excel.cellDictionary = {};
然后,要访问它,您需要执行类似于
Excel.cellDictionary[“2,2”]
的操作(可能这是显而易见的)


希望这有帮助。Cheers

很好:(但我认为您更喜欢使用
XTemplate
容器
s或
s,而不是
面板
s)当我使用Hbox或Vbox时,我并不是只获取面板的边框,而是获取单元格周围的边框。我是ExtJs的新手,所以我不太了解它为什么会发生。它工作正常吗??因为对我来说,当我在Firefox中运行它时,它会抛出无响应的脚本错误,它甚至不会在chrome和IE中打开。嗯,它在带有ExtJs 4.1.1的chrome中工作正常,请检查这里:
Excel.cellDictionary = {};