什么是将js数组放入extjs可滚动菜单的最佳方法

时间:2013-07-31 00:12:03

标签: javascript extjs

而不是“Item 1”等,我想将自己的数据放入extjs的可滚动菜单下拉列表中,然后发送值以查询相应的页面。这是关于extjs菜单的文档:

var scrollMenu = new Ext.menu.Menu();
    for (var i = 0; i < 50; ++i){ // replace this loop with one that loops thru my data
        scrollMenu.add({
            text: 'Item ' + (i + 1), // replace this with text from array (see my data below)
            id: // replace this with number from array (see my data below)
        });
    }
    // scrollable menu
    tb.add({
        icon: 'preview.png',
        cls: 'x-btn-text-icon',
        text: 'Scrolling Menu',
        menu: scrollMenu
    });

View an online sample并点击菜单中的“滚动菜单”按钮。

这是我的数据:

var locations = [
    [23, 'Main Room'],
    [1, 'Main Lobby'],
    [2, 'Training Room'],
    [56, 'Main Office'],
    [57, 'Lower Office'],
    [9, 'Lower Lobby'],
    [62, 'Conference Room'],
    [22, 'Outdoor Patio'],
    [63, 'Upper Lobby']
    ];

2 个答案:

答案 0 :(得分:0)

这几乎是一样的过程。循环遍历它以将其转换为对象数组。

var items = [];

Ext.Array.forEach(locations, function(item) {
    items.push({
        id: 'item' + item[0],
        text: item[1]
    });
});

new Ext.menu.Menu({
    items: items
});

答案 1 :(得分:0)

这就是最终的工作!

var scrollMenu = new Ext.menu.Menu();
    Ext.each(locations, function (name, index, locationsItSelf) {

        scrollMenu.add({
           // text: 'Item ' + (i + 1)
            value: name[0],
            text: name[1]
        });
    });