sencha touch2控制器不听事件

时间:2015-05-21 07:25:16

标签: controller sencha-touch

首先,我不会说英语。抱歉..

我的控制器没有在控制器和视图之间监听事件。

我使用Ext.NavigationView

我的观看代码: view.js

Ext.define('Mobile.view.Main', {
extend: 'Ext.NavigationView',
xtype: 'main',
requires: [
    'Ext.TitleBar',
    'Ext.dataview.List',
    'Ext.data.Store'
],
config : {

    navigationBar : {
        items : [ {
            iconCls : 'list'
        },{
            iconCls : 'info',
            align: 'right'
        } ]
    },

    items : [{
        title:'test',
        //styleHtmlContent : true,
        scrollable : {
            direction : 'vertical',
            directionLock : true
        },
        items:[{
            html:'menu',
            itemId : 'main_menu',
            height: 300
        },{
            html:'notice',
            height: 30,
            style: 'background-color:green'
        },{
            xtype : 'list',
            height : 270,
            //styleHtmlContent:true,
            style: 'background-color:orange',
            store : Ext.create('Ext.data.Store', {
                model: 'Mobile.model.Notice'
            }),

            loadingText : 'Loading...',
            itemTpl : [
                '<div style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis; padding-right:12px;padding-top:4px;">',
                '<div style="font-family:Pictos; width:20px; font-size:1em; display:inline-block;">6</div>',
                '<div style="display:inline;">{title} [{created}]</div>',
                '</div>'
            ].join(''),

            scrollable : false
        },{
            html:'button',
            height: 80,
            style: 'background-color:navy'
        },{
            html:'Copyright',
            height: 30,
            style: 'background-color:olive'
        }]
    }]
}

查看控制器代码:

Ext.define('Mobile.controller.MainController', {
extend: 'Ext.app.Controller',
config: {
    refs: {
        main: 'main', //NavigationView
        menu : 'main #main_menu' // catch ok.
    },
    control: {
        //working
        'main': {
            initialize: function(obj, opt){
                //<debug>
                console.log('[controller.MainController] main view 초기화..');
                //</debug>
                obj.child('container list').getStore().load();
                console.log(this.getMenu()); // working
            }
        },
        //working
        'main button[iconCls=list]' : {
            tap: function(obj, evt, opt){
                //<debug>
                console.log('[controller.MainController] sitemap button tap..');
                //</debug>
            }
        },
        //working
        'main button[iconCls=info]' : {
            tap: function(obj, evt, opt){
                //<debug>
                console.log('[controller.MainController] login button tap..');
                //</debug>

                var datePicker = Ext.create('Ext.picker.Date');
                Ext.Viewport.add(datePicker);
                datePicker.show();

            }
        },
        //not wokring
        menu : {
            initialize : function(){
                console.log('test');
            }
        }
    }
}

此事件无效......

       //not wokring
        menu : {
            initialize : function(){
                console.log('test');
            }
        }

儿童组件的事件在控制器中无效。

通过事件在视图中工作的方式。但不是控制器。

为什么..?谢谢。

1 个答案:

答案 0 :(得分:0)

在控制配置中有一个与itemId相关的错误:https://www.sencha.com/forum/showthread.php?291456

您可以尝试上述线程或此线程的解决方法:https://www.sencha.com/forum/showthread.php?293149