Inheritance 委托的继承

Inheritance 委托的继承,inheritance,qooxdoo,Inheritance,Qooxdoo,我创建了一个类,其中包含Selectbox和一些ListItem。要更改这些项目的标签,我将selectbox控制器的委托设置为configureItem 我想添加这些类的一些子元素,并向列表中添加一些项。现在我必须通过调用configureItem中的函数来调整configureItem。这个函数检查项目是否在当前类中,如果不是,我调用处理项目标签的超类方法 这在Qooxdoo 5.0.2中运行良好。现在我改为Qooxdoo 6来使用新的编译器,我得到了一个错误:uncaughttypeerr

我创建了一个类,其中包含Selectbox和一些ListItem。要更改这些项目的标签,我将selectbox控制器的委托设置为
configureItem

我想添加这些类的一些子元素,并向列表中添加一些项。现在我必须通过调用configureItem中的函数来调整
configureItem
。这个函数检查项目是否在当前类中,如果不是,我调用处理项目标签的超类方法

这在Qooxdoo 5.0.2中运行良好。现在我改为Qooxdoo 6来使用新的编译器,我得到了一个错误:
uncaughttypeerror:“调用方”、“被调用方”和“参数”属性在调用超类方法时,不能在严格模式函数或调用它们的参数对象上访问

以下是一些代码片段:

//在超类中设置委托
此文件为.operatorController.setDelegate({
configureItem:功能(项){
that.运算符delegateitems(item,that);
}
});
//超类方法
OperatorDeleteItems:函数(项,即){
开关(item.getLabel()){
案例“”:
item.setLabel(qx.locale.Manager.tr(“Ist Vorhanden”);
打破
案例“-”:
item.setLabel(qx.locale.Manager.tr(“Ist nicht Vorhanden”);
打破
案例“Nachfolger”:
item.setLabel(qx.locale.Manager.tr(“Zeige Nachfolger”);
打破
}
}
//子类委托函数
OperatorDeleteItems:函数(项,即){
if(item.getLabel()=“期间”)
项目.设置标签(“Jahresintervall”);
其他的
即.base(参数、项);
}

有人可以帮我解决这个问题,或者有没有更好的方法来解决我的问题?

问题是编译器只支持
this.base
,而您将
this
别名为
that
,因此无法识别它

我在这里添加了这个问题(),在发布6.0之前,需要解决这个特定的问题

查看您的代码,修复方法是在
变量中携带
this
是不必要的,因此将代码更改为
this.base
是有效的(感谢您在上尝试!)

但是,如果您不能直接改为使用
this.base
,那么解决方法是使用显式方法调用,例如,您可以使用类似

operatorDelegateItems : function(item, that) {
    if (item.getLabel() == "Period")
        item.setLabel("Jahresintervall");
    else
        myapp.MyBaseClass.prototype.operatorDelegateItems.call(this, item, that);
}

错误是指
参数.调用者
参数.被调用者
在严格模式下不可用(Qooxdoo 6应用程序使用),您的代码段不使用该模式,因此我需要更多信息。请你提供一个在操场()工作的例子?