我有一个扩展Window类(qx.ui.window.Window)的父窗口小部件,这个窗口现在有几个子窗口(我通过覆盖 childControlImpl 创建了子窗口。)
现在我想从其中一个子类访问Parent类中的方法。我不想创建一个对象来调用方法,而是想使用 getLayoutParent 方法来执行此操作。
但是当我可以从子类调用 getLayoutParent 方法时,我可以访问的是内置方法,但是我无法访问我创建的任何方法。
我怎样才能做到这一点?
代码示例:
qx.Class.define("project.WrkAttrWindow",{
extend : qx.ui.window.Window,
construct: function() {
this.base(arguments);
this.__table = this._createChildControl("table");
},
members: {
__table:null
_createChildControlImpl : function(id)
{
var control;
switch(id)
{
case "table":
control = new project.WrkAttrTable();
this.add(control);
break;
}
return control || this.base(arguments, id);
},
getPrjId:function() {
console.log(I want to call this function);
}
});
儿童小工具
qx.Class.define("project.WrkAttrTable",{
extend: qx.ui.table.Table,
statics: {
colKeys:["id","name","description"]
},
construct: function() {
this.base(arguments);
//some code here
},
members:
{
//call parent method from here
this.getLayoutParent().getPrjId(); // does not work
}
});
答案 0 :(得分:0)
尽管有关Nabble的交叉帖,但这是answer的要点:
在_ createChildControlImpl 中,使用 this._add 代替this.add。