0

我尝试使用 sencha 架构师(extjs 4.2.0)打开窗口,但出现此错误:

record.getData is not a function

我的代码(在我的控制器中)是:

Ext.define('ModuleGestion.controller.MyController', {
    extend: 'Ext.app.Controller',

    MajUtilisateurApplicatif: function(record) {
        var view = Ext.widget('FormUtilisateurApplicatif');      
        view.down('form').loadRecord(record);
    },

    init: function(application) {
        this.control({
            "gridpanel#GridUtilisateursApplicatifs": {
                itemdblclick: this.MajUtilisateurApplicatif
            }
        });
    }

});

有人可以帮助我吗?

4

1 回答 1

1

请务必阅读itemdblclick 的文档。您会注意到按顺序为事件传递的参数是:

  • 这个(查看)
  • 记录
  • 物品
  • e
  • eOpts

本质上,您正在尝试加载带有记录视图的表单,这是不正确的。

我建议像这样更改您的方法:

MajUtilisateurApplicatif: function( view, record, item, e, eOpts ) {
   var me = this,
       win = Ext.widget('FormUtilisateurApplicatif');      
   win.down('form').loadRecord(record);
}

最佳实践是始终枚举从事件侦听器传递给您在控制器中创建的自定义方法的参数。这不仅可以帮助您避免上述错误,而且还可以更有帮助地与阅读您的代码的其他开发人员准确地交流他们必须在您的方法中处理哪些传入参数。

希望这可以帮助。

于 2013-05-29T22:04:48.727 回答