这看起来很基本,但似乎无法找到实现这个的方法:我想从数组中初始化一个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有没有办法做到这一点?
答案 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);
使用控制器时,您会获得一些更有趣的功能,例如将更改事件轻松绑定到其他小部件等。