Qooxdoo Доступ к динамическим свойствам из другого класса? - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь получить доступ к свойству 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 ]

1 голос
/ 21 марта 2012

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

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

1 голос
/ 21 марта 2012

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