有没有办法从Qooxdoo中的数组初始化选择框中的项目?

时间:2012-03-16 17:38:57

标签: qooxdoo

这看起来很基本,但似乎无法找到实现这个的方法:我想从数组中初始化一个SelectBox

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有没有办法做到这一点?

1 个答案:

答案 0 :(得分: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);

使用控制器时,您会获得一些更有趣的功能,例如将更改事件轻松绑定到其他小部件等。