Sencha touch 2 - 如何覆盖自定义组件的嵌套列表点击事件

时间:2012-06-15 17:34:52

标签: sencha-touch-2 sencha-architect

我正在使用getItemTextTpl将一个复选框组件添加到嵌套列表中 - 我还希望能够覆盖默认的点击事件,以便在选中复选框时会显示弹出消息并且列表不会前进到下一个项目。请参阅下面的配置 - 我能够捕获复选框检查事件,但不能如何覆盖嵌套列表的默认行为。感谢您的帮助,如果我能澄清任何细节,请告诉我 - 如果它有助于我使用sencha架构师

嵌套列表配置:

getItemTextTpl: function(recordnode) {
        return '<table width="100%"><row>' + 
        '<tr><td width="100%" align="left" width="100%" valign="bottom"><div class="view"><input type="checkbox" <tpl  if="done">checked</tpl> />&nbsp;&nbsp;{name}</td></row></table>'; 

    }

控制器:

onNestedlistInitialize: function(component, options) {
// setup taskList to listen on the tap on the checkbox and show a popup window 
component.element.on({
    tap: function(e, el) {
        console.log('checkbox tapped'); 
        //need to override nestedlist tap event and show popup message
    }
});

1 个答案:

答案 0 :(得分:1)

为防止列表切换到下一张卡,您需要覆盖activeitemchange,如下所示:

var nestedList = Ext.create('Ext.NestedList', {
  ...
  listeners:{
    activeitemchange:function(){
      if(...){ // Check if you checkbox is checked or not
         return false; // return false prevent the nestedlist from switching to the next view
      }
    }
  }
});