ExtJS4 Model.save () ошибка: запись не определена. - PullRequest
2 голосов
/ 17 июня 2011

Что я пытаюсь сделать:

Я делаю приложение с ExtJS 4, используя архитектуру MVC.У меня есть Модель (Пользователь) с прокси, хранилищем (Пользователи) и Контроллером.

Контроллер ожидает кнопку «Добавить пользователя», которая получает данные из формы.Я создаю нового пользователя и передаю данные:

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

, а затем вызываю

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

Что происходит:

Использую ли я обратные вызовы или нет,и даже если параметры функции save () пусты, я получаю следующую ошибку:

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

Брошено в ... / ext-4.0.1 / src / data / Model.js в строке 972.

То, что мне удалось выяснить до сих пор:

Выполнение трассировки стека показывает, что:

operation = Ext.create('Ext.data.Operation', options);

в строке 968 (того же файла Model.jsупомянутый выше) возвращает объект, имеющий записи, из которых есть данные, которые я передаю.

Два вопроса здесь:

  1. Является ли этоошибка?
  2. Я что-то не так делаю?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 17 июня 2011

Сначала я бы предложил вам обновить до последней версии 4.0.2a , чтобы вы получили последние исправления ошибок.

Ext JS имеет собственную систему классов, поэтому вы не можете создать экземпляр класса на основе Ext с ключевым словом new. Всегда используйте Ext.create для создания экземпляров нового класса из Ext JS и используйте new только для простых классов на основе прототипов.

Для моделей вы можете создать новый экземпляр через менеджер моделей:

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