首页 > 解决方案 > 将自定义参数传递给 ExtJS 视图控制器

问题描述

在 ExtJS 6.02 中,如果我有这样的事情:

Ext.define('MyApp.view.foo.Foo', {
    extend: 'Ext.panel.Panel',
    xtype: 'foo',
    controller: 'foo',
    renderTo: Ext.getBody(),

    tbar: [{
        xtype: 'button',
        text: 'CLICK HERE',
        handler: 'onAdd'
    }],
});

Ext.define('MyApp.view.foo.FooController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.foo',

    onAdd: function (my_bool) {
        console.log(arguments);
        
        if (my_bool === true) {
            Ext.Msg.alert('Success!', 'We have been rendered');
        }
    }
});

Ext.create('MyApp.view.foo.Foo', {});

有没有办法将与默认参数不同的参数传递给控制器​​方法?
在上面的示例中,控制器将只接收一个布尔值。

小提琴:https ://fiddle.sencha.com/#view/editor&fiddle/3dgr

标签: javascriptfunctionextjsparameterscontroller

解决方案


你调整你的处理器怎么样?
如果您在那里定义自己的函数,您还可以定义要传递给视图控制器的参数。

handler: function(btn) {
        btn.up('panel').getController().onAdd('param1', 'param2');
    }

推荐阅读