为什么我需要额外的参数?

时间:2014-12-11 17:13:05

标签: extjs

在Ext中,我看到init函数中的click侦听器调用了下面的函数。我只是好奇为什么我需要item,t,index或eOpts来使它工作。这些参数似乎没有在这个函数中使用,但如果我删除它们,它会给我一个错误说:

onRowClickAttributes: function( t, rec, item, index, e, eOpts ) {
    if( e.getTarget().className.indexOf( 'edit-me' ) !== -1 ) {
        this.openEditor( rec );
    } else if( e.getTarget().className.indexOf( 'delete-me' ) !== -1 ) {
        this.deleteAttributes( [ rec ] );
    }
}

2 个答案:

答案 0 :(得分:1)

看起来该函数被用作事件监听器,显然是用于网格视图的rowclick事件。

当网格视图触发事件时(即在单击一行之后),将使用定义的参数调用该函数(请参阅documentation)。这是由框架管理的,并且应该包含与事件有某种关系的所有内容,因此可能对开发人员有用。

由于参数完全按照文档中所写的顺序传递,并且开发人员对此顺序没有影响,因此您无法省略t以使用rec而您无法省略{{ 1}}或item以便使用index

但是,您可以省略最后一个参数e,因为它未在您的函数中使用,并且后面没有其他参数。

eOpts

答案 1 :(得分:0)

参数只能通过它们的显示顺序为此功能所知。所以打电话给

onRowClickAttributes(null, rec, null, null, e);

只会传入rec和e。

那是你得到的吗?