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
Е, опитах няколко различни начина (с оператор init, при инстанцирането на класа и след като класът беше зареден) и никой от тях не изглеждаше да работи. Най-накрая намерих начин, който работи, който ще публикувам като отговор по-долу.   -  person Jonathan    schedule 21.03.2012


Отговори (2)


В крайна сметка просто направих отделен клас като просто qx.core.Object и го използвах вместо единичен композитен клас и изглеждаше, че прави това, което исках да постигна.

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