Listview itemtap执行相同的控制器功能

时间:2013-07-21 08:44:57

标签: sencha-touch sencha-touch-2 sencha-architect

我的应用程序中有2个ListView,当用户点击每个listview项目的项目时,页面应导航到不同的视图。

就我而言,当我点击每个视图时,它会导航到同一个视图。看起来当用户点击视图的项目时,它调用相同的控制器功能。这是我的代码,有人可以帮我解决这个问题;

Ext.define('MyApp.controller.MyCOntroller', {
    extend: 'Ext.app.Controller',

    config: {
        refs: {  
            OneList: 'onel',    
            TwoList: 'twol'
        },

        control: {
            "list": {
                itemtap: 'onOnelTap'
            },
            "list": {
                itemtap: 'twolClicked'
            }
        }
    },

    onOnelTap: function(dataview, index, target, record, e, eOpts) {
        console.log("hhhhhh  "+e.event.target.nodeName);
   },

    courtRoomListClicked: function(dataview, index, target, record, e, eOpts) {
        console.log(" 2  -- >list");
    }

});

2 个答案:

答案 0 :(得分:2)

您好像没有正确宣布refscontrols

假设您的OneList有一个名为one-list的ID,那么引用和控件应该像这样声明:

config: {
    refs: {  
        OneList: 'one-list'
    },

    control: {
        "OneList": {
            itemtap: 'onOnelTap'
        }
    }
},

其余的都没问题。希望这会有所帮助。

答案 1 :(得分:1)

如果我理解正确,你的control配置不好,你可能需要这样做

Ext.define('MyApp.controller.MyCOntroller', {
    extend: 'Ext.app.Controller',

    config: {
        refs: {  
            // I assume that 'onel' and 'twol' are xtype of respective views
            OneList: 'onel', 
            TwoList: 'twol'
        },

        control: {
            OneList: {
                itemtap: 'onOnelTap'
            },
            TwoList: {
                itemtap: 'onTwolTap'
            }
        }
    },

    onOnelTap: function(dataview, index, target, record, e, eOpts) {
        console.log("onOnel Tap ");
   },

    onTwolTap: function(dataview, index, target, record, e, eOpts) {
        console.log("onTwol Tap");
    }

});