2

我需要将子面板插入/添加到手风琴。这些子面板中的每一个都应该使用数据中的“字段”值来命名(见下文),并且每个子面板的内容应该是(标签或显示字段或??),只要它是可点击的。来自服务器的 json 数据如下:

data: [{
    'field': 'cities',
    'values': [{
        'value': 'DC',
        'count': 5
    }, {
        'value': 'SF',
        'count': 2
    }, {
        'value': 'NYC',
        'count': 4
    }, {
        'value': 'Nashville',
        'count': 4
    }]
}, {
    'field': 'beaches',
    'values': [{
        'value': 'obx',
        'count': 1
    }, {
        'value': 'ocean city',
        'count': 2
    }, {
        'value': 'myrtle',
        'count': 4
    }]
}, {
    'field': 'planets',
    'values': [{
        'value': 'mercury',
        'count': 1
    }, {
        'value': 'venus',
        'count': 2
    }, {
        'value': 'earth',
        'count': 4
    }, {
        'value': 'mars',
        'count': 1
    }, {
        'value': 'jupiter',
        'count': 2
    }, {
        'value': 'uranus',
        'count': 4
    }, {
        'value': 'neptune',
        'count': 1
    }]
}]

渲染工作!!:)

但是我无法获得有效的点击事件。最终,点击监听器需要让我访问选定的值+“字段”值。(例如,“行星”、“木星”)。

这应该很容易,但我无法让它工作。起初,我尝试嵌套 for 循环并动态创建组件,但无法添加有效的点击处理程序(也许 b/c 我正在商店加载处理程序函数中完成这项工作?)。我还尝试了面板中的数据视图(仅传入数组),但 itemSelector 没有触发。我已经根据代码尝试了“div.facet”、“div.facet_item”(以及其他一些等),但没有运气 - 可能是 b/c 我不知道如何在我的控制器的 this.control():

'panel[itemId=pnlFacets] > panel > dataview': {
    itemclick: me.facetSelect
}

和数据视图尝试的 tpl:

var tplFacet = new Ext.XTemplate(
    '<tpl for=".">',
        '<div class="facet">',
            //ignore - (this is handled in title of panel) '<label class="facet_field">{facetName}</label>',   
            '<tpl for="facetEntries">',
                '<div class="facet_item">{value}&nbsp;&nbsp;({count})</div>',
            '</tpl>',
        '</div>',
    '</tpl>'
);
4

0 回答 0