在 extjs MVC 架构中如何将参数传递给函数

Posted

技术标签:

【中文标题】在 extjs MVC 架构中如何将参数传递给函数【英文标题】:In extjs MVC architecture how to pass parameter to function 【发布时间】:2013-11-29 07:19:25 【问题描述】:

我想将参数“aaa”传递给 disableFlied 函数,但下面的代码不起作用:

init: function() 

    this.control(
        '#speedCheck': 
            change :this.disableFlied("aaa")
        
    );

,
disableFlied: function(cmpName)

    var a = Ext.getCmp(cmpName);
    a.setDisabled(!a.isDisabled());


如何将“aaa”传递给disableFlied函数?

【问题讨论】:

【参考方案1】:

您必须传递一个函数作为事件处理程序,在这里您传递的是自己调用disableField 的结果(即没有任何内容,因为此方法不返回任何内容)。您需要做的是创建另一个传递所需参数的函数。在 Ext 中,您可以使用 Ext.bind 函数来做到这一点。

你应该如何使用它:

this.control(
    '#speedCheck': 
        change: Ext.bind(this.disableField, this, ['aaa'])
    
);

这将围绕disableField 方法创建一个闭包。这 相当于这个香草javascript代码:

    '#speedCheck': 
        // This is the default scope, but I prefer to make it
        // explicit that the handler must be called in the
        // current scope
        scope: this
        ,change: function() 
            // When this function is called, it will call
            // disableField with the desired parameter
            this.disableField('aaa');
        
    

【讨论】:

this.control( '#speedCheck': change: Ext.bind(this.disableField, this, ['aaa']) this ); 如果您复制/粘贴了我的示例,请注意我写了disableField,而您在代码中的disableFlied 有错字。 如果这仍然不起作用,这可能表明您的代码中的其他地方有错误...您需要提供更多详细信息以获得进一步的帮助。从如何开始,它不起作用。 我是***的新用户,不熟悉如何使用,只是标记了:)

以上是关于在 extjs MVC 架构中如何将参数传递给函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将模型作为参数传递给 ASP.NET MVC 中的 [HttpPost] ActionMethod?

如何将多个参数传递给 ASP.NET CORE MVC 中的 HttpGet 方法?

如何将参数传递给 ASP.NET MVC 中的局部视图?

extjs 上下文菜单单击,将父网格作为参数传递给控制器​​方法

JQuery将'空参数传递给MVC控制器方法

如何将 json 对象传递给 mvc 控制器