【发布时间】:2012-05-05 09:02:35
【问题描述】:
我需要动态扩展类并使用此代码:
Calc.grid.Table["Table"+key] = function(config) {
config = config || {};
Ext.applyIf(config,{
id: 'calc-grid-table'+key
,baseParams: {
action: 'mgr/calc/calcGetTable'+key
,query: 'Calc'+key
}
});
Calc.grid.Table["Table"+key].superclass.constructor.call(this,config)
};
Ext.extend(Calc.grid.Table["Table"+key],Calc.grid.Table);
Ext.reg('calc-grid-table'+key,Calc.grid.Table["Table"+key]);
但它给了我一个错误:
Uncaught TypeError: Cannot read property 'superclass' of undefined
我试着改成这个
this.superclass.constructor.call(this,config)
但错误是
Uncaught SyntaxError: Unexpected identifier
问题在于动态文字。当我这样做时,它可以正常工作
Calc.grid.Table.Table21 = function(config) {
config = config || {};
Ext.applyIf(config,{
id: 'calc-grid-table'+21
,baseParams: {
action: 'mgr/calc/calcGetTable'+21
,query: 'Calc'+21
}
});
Calc.grid.Table.Table21.superclass.constructor.call(this,config)
};
Ext.extend(Calc.grid.Table.Table21,Calc.grid.Table);
Ext.reg('calc-grid-table'+21,Calc.grid.Table.Table21);
我该如何解决?我做错了什么?
提前感谢。
【问题讨论】:
-
key很可能在调用构造函数之前发生变化。你能再显示一些代码吗? -
@Pumbaa80,非常感谢!那是个问题。关键是在循环中迭代。现在我有了新的例外“未捕获的类型错误:无法调用未定义的方法'stopEditing'”。你知道是什么原因造成的吗?
标签: javascript extjs extjs3 modx user-defined-literals