Несколько вещей, которые должны делать большинство разработчиков JavaScript:
Используйте firebug, если вы включите break на всех ошибках, это, вероятно, покажет вам, что store.get (1) возвращает undefing и вызывает ошибку, когда вы пытаетесь вызвать функцию на undefined.
Теперь, когда у вас есть firebug, используйте операторы console.log () поверх window.alert (). С console.log вы можете увидеть его, он также хорош для асинхронных событий и событий мыши.
Что касается вашей проблемы:
Вызов record.copy () и вставка его в хранилище вызовет проблемы, если вы не дадите ему идентификатор. Если у вас есть firebug и вы просматриваете код, вы наткнетесь на это:
if(this.containsKey(key)){
this.suspendEvents();
this.removeKey(key);
this.resumeEvents();
}
Чтобы сгенерировать запись с уникальным ключом, вы можете сделать что-то вроде этого:
var rec = store.getAt(a[0]).copy();
var id = Ext.data.Record.id(id);
rec.id = id;
Код кажется грязным, но не так много хороших способов сделать это. Если бы это был я, я бы переопределил функцию копирования, чтобы получить логическое значение для принудительной генерации идентификатора записи.