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());

Но, похоже, он не знает, какие значения в настоящее время установлены. Я что-то делаю не так или есть какая-то логика, о которой я не знаю?

Спасибо за любую помощь, которую вы можете дать!


person Jonathan    schedule 20.03.2012    source источник
comment
Как и когда вы устанавливаете стоимость имущества?   -  person ThomasH    schedule 21.03.2012
comment
Что ж, я пробовал несколько разных способов (с оператором инициализации, при создании экземпляра класса и после загрузки класса), и ни один из них не работал. Наконец-то я нашел сработавший способ, который я опубликую в качестве ответа ниже.   -  person Jonathan    schedule 21.03.2012


Ответы (2)


В итоге я просто создал отдельный класс как просто 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();
person Jonathan    schedule 21.03.2012

Эм. Здесь есть что-то еще. Ваше начальное определение класса и определение из вашего собственного ответа не так уж далеки друг от друга, что касается свойства. Может быть, в остальной части вашего начального класса или в коде, использующем его, что-то не так?!

Взгляните на этот пример Playground, в котором используется исходное определение класса. Вы должны открыть панель «Журнал», чтобы увидеть вывод. Работает как шарм.

Было бы очень интересно, если бы вы могли изменить этот образец и настроить его до тех пор, пока он не воспроизведет вашу проблему?!

person ThomasH    schedule 21.03.2012