2012-03-16 1 views
0

Это кажется основным, но не может найти способ осуществить это: Я хотел бы инициализировать переключатель из массиваЕсть ли способ инициализировать элементы в SelectBox из массива в Qooxdoo?

var array = ["item1","item2"...] 

вместо того, чтобы перебрать ListItems

var selectBox = new qx.ui.form.SelectBox(); 
var test = ["item1", "item2"]; 
for (var i = 0; i < test.length; i++){ 
    var tempItem = new qx.ui.form.ListItem(test[i]); 
    selectBox.add(tempItem); 
} 

Есть ли способ сделать это в Qooxdoo?

ответ

3

Во-первых, более элегантный вариант вашего цикла:

var selectBox = new qx.ui.form.SelectBox(); 
test = ["item1", "item2"]; 

test.forEach(function(obj) { 
    selectBox.add(new qx.ui.form.ListItem(obj)); 
}, this); 

Но вы должны взглянуть на данные связывания документов в Qooxdoo (Link to documentation). При использовании этого у вас есть решение, как это:

var selectBox = new qx.ui.form.SelectBox(); 
test = ["item1", "item2"]; 

new qx.data.controller.List(new qx.data.Array(test), selectBox); 

При работе с контроллерами вы получите более интересные функции, как легко связывать событие изменения для других виджетов и т.д.

+0

Спасибо, что было именно то, что я искал ! – Jonathan