Model view controller record.getData不是一个函数

Model view controller record.getData不是一个函数,model-view-controller,extjs,javascript-framework,Model View Controller,Extjs,Javascript Framework,我尝试使用sencha architect(extjs 4.2.0)打开窗口,但出现以下错误: record.getData is not a function 我的代码(在我的控制器中)是: 有人能帮我吗?一定要看报纸。您会注意到,为事件传递的参数按顺序为: 此(视图) 记录 项目 e eOpts 实际上,您试图加载一个带有记录视图的表单,这是不正确的 我建议改变你的方法如下: MajUtilisateurApplicatif: function( view, record, item,

我尝试使用sencha architect(extjs 4.2.0)打开窗口,但出现以下错误:

record.getData is not a function
我的代码(在我的控制器中)是:

有人能帮我吗?

一定要看报纸。您会注意到,为事件传递的参数按顺序为:

  • 此(视图)
  • 记录
  • 项目
  • e
  • eOpts
实际上,您试图加载一个带有记录视图的表单,这是不正确的

我建议改变你的方法如下:

MajUtilisateurApplicatif: function( view, record, item, e, eOpts ) {
   var me = this,
       win = Ext.widget('FormUtilisateurApplicatif');      
   win.down('form').loadRecord(record);
}
最佳实践是始终枚举从事件侦听器传递到控制器中创建的自定义方法的参数。这不仅可以帮助您避免上述错误,而且还可以更有效地与阅读您的代码的其他开发人员进行沟通,准确地了解他们在您的方法中必须处理哪些传入参数


希望这能有所帮助。

您好,我使用这个示例:我按组件更改事件绑定“OnFormAfterRender”的abstractcomponent。谢谢!嗯,这个例子在我看来有点复杂。我不确定在窗口中设置自定义属性的目的是什么,只是为了重用它来设置表单中的值。因为表单已经属于窗口,所以像以前一样,用记录加载表单似乎是一种更好的方法(而且代码更少)。您在原始示例中遇到的唯一问题是函数参数不正确。不管怎样,只要我的0.02美元。
MajUtilisateurApplicatif: function( view, record, item, e, eOpts ) {
   var me = this,
       win = Ext.widget('FormUtilisateurApplicatif');      
   win.down('form').loadRecord(record);
}