Qooxdoo从另一个类访问动态属性?

时间:2012-03-20 17:52:36

标签: qooxdoo

我正在尝试访问此类的selectedObs属性:

qx.Class.define("edd.view.ObsToggleContainer", {    
extend : qx.ui.container.Composite,
type: "singleton",
properties : {      
    selectedObs : { check: "Array"}
},
construct : function() {...
来自另一个类的

var ObsToggle = edd.view.ObsToggleContainer.getInstance();
console.log(ObsToggle.getSelectedObs());

但它似乎不知道目前的价值是什么。我做错了什么还是有一些我不知道的逻辑?

感谢您提供任何帮助!

2 个答案:

答案 0 :(得分:1)

我最后只是创建一个单独的类,只是一个qx.core.Object并使用它而不是单个Composite类,它似乎做了我想要完成的事情。

qx.Class.define("edd.data.DataStore", {
    properties : {      
        checkedObs: { 
            init: [false,  true, true, false, false, false, false, false, true, false, false, false], 
            check: "Array"
        }
    },
    extend : qx.core.Object,
    type: "singleton",

    construct : function() {
        var thisClass = this;
    },

    members :{
    }
});

现在,这段代码正常运行:

var dataStore = edd.data.DataStore.getInstance();
var init_checked = dataStore.getCheckedObs();

答案 1 :(得分:1)

嗯。这里还有别的东西。就属性而言,您的初始课程定义和您自己答案中的定义并不相距甚远。也许在你的初级课程的其余部分,或者在使用它的代码中,出现了什么错误?!

查看此Playground sample,它使用您的初始类定义。您必须打开“日志”窗格才能查看输出。像魅力一样。

如果你能改变这个样本,并调整它直到它再现你的问题,那将是非常有趣的吗?!