Что я пытаюсь сказать, так это то, что push-методы созданы для изменения элементов, не делая их «грязными», поэтому они не будут синхронизированы, так как они изменены кем-то другим, вы просто получаете обновления. Но в то же время метод pushUpdate использует метод kendo.data.Model.prototype.accept, который не анализирует значения перед применением и изначально выглядит следующим образом:
accept: function (data) {
var that = this, parent = function () {
return that;
}, field;
for (field in data) {
var value = data[field];
if (field.charAt(0) != '_') {
value = that.wrap(data[field], field, parent);
}
that._set(field, value);
}
if (that.idField) {
that.id = that.get(that.idField);
}
that.dirty = false;
}
Мне интересно, правильно ли расширять Model вашим собственным методом accept?
accept: function (data) {
var that = this, parent = function () {
return that;
}, field;
for (field in data) {
var value = data[field];
value = that._parse(field, value); //added
if (field.charAt(0) != '_') {
value = that.wrap(value, field, parent);
}
that._set(field, value);
}
if (that.idField) {
that.id = that.get(that.idField);
}
that.dirty = false;
}
Кажется, это работает (по крайней мере, поля даты выглядят как объект даты вместо строк), но кендо слишком велико, чтобы учитывать все детали