У меня есть сложная модель, которая содержит нагрузку ko.observable, ko.observableArray и вложенные объекты, которые содержат еще больше этих наблюдаемых.Частичное сопоставление существующего объекта с нокаутом JS
Теперь изначально мне приходилось делать методы внутри каждой из моделей, которые в составе составляют большую модель, чтобы принимать данные Json, а затем заполнять ее наблюдаемые. Теперь я попробовал ko.mapping плагин, но когда я использую, что делает:
ko.mapping.fromJS(jsonData, {}, existingModel);
Который, кажется, работает для большинства объектов, однако я заметил, что когда я делаю это, кажется, полностью перезаписать объект, и как я я использую KNOCKOUT расслоение плотной проверки, а именно:
this.Name = ko.observable().extend({ required: true });
this.Age = ko.observable().extend({ required: true, digits: true });
Проблема заключается в том, что эти атрибуты проверки, кажется, должны быть удалены при использовании модуля отображения, так есть ли способ, чтобы получить отображение плагин просто обновить значения, а не подделка объектная схема ...
Я более чем счастлив использовать другой механизм, отличный от ko.mapping, если есть лучший способ применить данные Json к моделям.
Да, я видел, что использование проблемы - это мои объекты. Структурное дерево огромно, и этот подход, вероятно, более подробен, чем мой текущий подход, когда каждый объект имеет метод стиля PopulationFromData (jsonData). Я надеялся полностью устранить эту проблему, поэтому я мог просто вызвать ko.mapping.fromJS (data, existingObject), и это не изменит структуру только значения ... возможно, я могу просто написать свою собственную на основе нокаута сопоставление исходного кода, чтобы сделать что-то вроде ko.mapping.updateValuesFromJS (данные, existingObject); – Grofit