我需要插入/添加儿童面板到手风琴 . 这些子面板中的每一个都应该使用数据中的“字段”值(见下文)来 Headers ,并且每个子节点的内容应该是(标签或显示字段或??),只要它是可点击的 . 服务器的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} ({count})</div>',
'</tpl>',
'</div>',
'</tpl>'
);