ExtJS4 Model.save()错误:记录未定义。

时间:2011-06-17 16:24:26

标签: javascript model-view-controller model extjs4

我正在尝试做什么:

我正在使用MVC架构使用ExtJS 4制作应用程序。我有一个模型(用户)与代理,商店(用户)和控制器。

控制器侦听“添加用户”按钮,该按钮从表单接收数据。 我创建了一个新用户并传入数据:

var newUser = new MY.model.User({name: textInputValue}); //bob

然后致电

newUser.save({
    success: function() { ... },
    failure: function() { ... }
});

发生了什么:

我是否使用回调,即使save()函数参数为空,我也会收到以下错误:

record is undefined:
me.set(record.data);

在第972行的... / ext-4.0.1 / src / data / Model.js中抛出。

到目前为止我能找到的内容:

运行堆栈跟踪显示:

operation = Ext.create('Ext.data.Operation', options);
第968行(上面提到的同一个Model.js文件)的

返回一个包含记录的对象,其中包含我传递的数据。

这里有两个问题:

  1. 这是一个错误吗?
  2. 我做错了吗?
  3. 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

首先我建议您upgrade to the latest version 4.0.2a,以便获得最新的错误修复。

Ext JS有自己的类系统,因此您无法使用new关键字实例化基于Ext的类。始终使用Ext.create从Ext JS实例化一个新类,并仅将new用于基于原型的类。

对于模型,您可以通过模型管理器创建新实例:

var user = Ext.ModelManager.create({
    name : 'Bob'
}, 'User');