Метод кендо DataSource pushUpdate не поддерживает разбор полей - PullRequest
0 голосов
/ 12 ноября 2018

Что я пытаюсь сказать, так это то, что 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;
}

Кажется, это работает (по крайней мере, поля даты выглядят как объект даты вместо строк), но кендо слишком велико, чтобы учитывать все детали

...