Я работаю над онлайн-формой системы, с формами, которые необходимо будет обновлять с течением времени. Я использую Knockout.js вместе с плагином Mapping, чтобы выполнить это, и он работает хорошо.Нокаут JS Сопоставление - Сохранение viewModel свойства нет в базе данных
Одна из проблем, с которыми я столкнулась, заключается в том, что, похоже, отказывается сохранять какие-либо свойства в ViewModel, которые не были в объекте JSON, загруженном из базы данных. Например, если ViewModel, который был сохранен в базу данных выглядит следующим образом:
var viewModel = {
prop1: ko.observable(""),
prop2: ko.observable(""),
prop3: ko.observableArray()
};
Я инициализировать «ViewModel» переменный этот прототип, а затем загрузить свои данные в формате JSON от сервера, ko.mapping.fromJSON(data, {}, viewModel);
и это работает, как ожидалось , Вот где моя проблема; Если мой ViewModel теперь имеет дополнительное свойство, например так:
var viewModel = {
prop1: ko.observable(""),
prop2: ko.observable(""),
prop3: ko.observableArray(),
prop4: ko.observableArray()
};
Если я загрузить данные в формате JSON, созданные на основе прототипа Firsts, я могу открыть четвертое свойство в ViewModel, добавление и удаление из массива и увидеть его обновлен на экране, но он не будет возвращаться в базу данных, используя ko.mapping.toJSON(viewModel)
. Я собираюсь, что это связано с свойствами «ko _mapping_», которые присваиваются частям модели viewModel, которые были сопоставлены с использованием плагина сопоставления. Прошу прощения, если эта ситуация была рассмотрена раньше, но я не мог найти ответ.
Мне нужно иметь возможность обновить прототип для viewModel, поскольку его конкретные требования могут незначительно меняться с течением времени. Это может случиться с любой из моих форм, поэтому общее решение будет фантастическим!
Спасибо.
Я понимаю, о чем вы говорите, но это не очень полезно для моей ситуации. Данные не JSON для начала, а пользовательский ввод, который я использую для сопоставления нокаутом для сохранения в JSON в базе данных. Я очень это ценю! – blusk0