我想创建一个事件监听器来检测我的嵌套列表何时位于顶层,然后隐藏页面上的组件。例如:
onNestedlistActiveItemChange: function(container, value, oldValue, options) {
if (this.getMyNestedList().atLevel(0)) <-- seudo code, does not work
{
Ext.getCmp('myButton').hide();
}
}
提前感谢您的帮助
答案 0 :(得分:2)
当隐藏默认后退按钮时,嵌套列表的_backButton._hidden
属性将返回true
,当显示按钮时,false
将返回onMynestedlistBack: function(nestedlist, node, lastActiveList, detailCardActive, options){
if(nestedlist._backButton._hidden) {
Ext.ComponentQuery.query('#myButton')[0].hide();
}
}
。仅当嵌套列表位于顶层时,才会隐藏该按钮。
诀窍是使用嵌套列表的“后退”事件,该事件在发生后退事件后返回工具栏的状态:
myButton
也就是说,如果嵌套列表的后退按钮被隐藏,则列表位于顶层,因此隐藏{{1}}。
当然有更严格的方法,但大多数方法都会涉及覆盖工具栏的默认按钮处理。
答案 1 :(得分:0)
您可以通过检查列表的索引
来获取列表级别var idx = nestedlist.getInnerItems().indexOf(list);
if (idx === 0) {
// top level...
}
<强> [UPDATE] 强>
您还可以检查记录的深度级别
var depth = record.getData().depth;
if (depth === 1) {
// top level...
}