2012-06-14 7 views
1

У меня есть html ниже с привязкой ко.ko.mapping.toJSON 2-сторонняя привязка не работает

<ul data-bind="foreach: ViewModel"> 
<li data-bind="text: name">      
</li> 
</ul> 
<input type="hidden" data-bind="value:id"/> 

При изменении списка hideden поле получает обновленный correctly.However, когда я нажимаю кнопку отправки на форме POST не отправляет недавно обновленный ViewModel. Он отправляет старый, который был извлечен.

Когда я получить данные с сервера У меня есть использовать это:

ko.mapping.fromJS(data, {}, viewModel) 

Перед тем, как опубликовать я это сделал:

ko.mapping.toJSON(viewModel) 

Я применил правильный ko.applyBindings. Может ли это быть ошибкой с ko.Mapping или что-то, что я здесь отсутствует?

+0

Не видя больше кода, невозможно сказать, в чем проблема. Можете ли вы сделать макет в jsfiddle, чтобы показать больше кода? Один вопрос, почему вы даже используете скрытые поля, если вы делаете json submit? – madcapnmckay

ответ

0

Вы пробовали просто сделать:

ko.toJSON(viewModel); 

Я не думаю, что вам нужно не-карту объекта, прежде чем отправить его в JSON ...

+0

Поддерживает ли ko.mapping массивы? Поскольку JSON, получаемый с сервера, содержит коллекцию массива. Я подозреваю, что ko.mapping не может иметь двухстороннюю привязку? –

+0

Не могли бы вы опубликовать свой код модели Моделя, чтобы мы могли лучше понять ситуацию с геймплеем? – Ingro

Смежные вопросы