Sencha现代应用程序viewcontroller没有绑定被调用?

问题描述 投票:1回答:1

首先要强调的是:我正在使用现代的sencha。 好好考虑以下观点:

Ext.define('myApplication.view.main.OrderView', {
    extend: 'Ext.Container',
    xtype: 'ordercontainer',
    controller: 'order',

    requires: [
        'Ext.MessageBox',
        'Ext.layout.Fit'
    ],

    viewModel: 'main',

    defaults: {
        tab: {
            iconAlign: 'top'
        },
        flex: 1
    },

    layout: 'vbox',

    items: [
        {
            xtype: 'button',
            text: 'test, to be updated',
            height: 30,
            flex: 0,
            listeners: {
                click: 'onClick'
            }
        },
    ]
});

使用相应的控制器:

Ext.define('myApplication.view.main.OrderController', {
    extend: 'Ext.app.ViewController',

    alias: 'controller.order',

    onClick: function () {
        debugger;
        alert('onClick');
    }
});

现在我可以在加载页面时看到按钮。我希望调用onClick函数(根据guide)。但事实并非如此。我没有看到任何警报,也没有(当开发控制台在chrome中打开时)onClick函数上的调试器暂停。

如果我更改按钮以使用handle并使用代码隐藏它可以工作。然而,视图控制器不起作用。这不应该失败吗?或者我是否再次陷入使用经典指南的陷阱?

javascript model-view-controller extjs
1个回答
0
投票

这是因为在现代,components没有事件clicktap

所以改变你的代码是这样的:

items: [
    {
        xtype: 'button',
        text: 'test, to be updated',
        height: 30,
        flex: 0,
        listeners: {
            tap: 'onClick'
        }
    },
]
© www.soinside.com 2019 - 2024. All rights reserved.