2013-05-08 1 views
2

У меня есть моя форма, сопоставленная с использованием knockout.js и картографического плагина. Я готов сохранить форму json и отправить ее обратно на сервер. Это мой первый раз, так что это самый простой способ сделать это?knockout.js сохранить форму json

Вот то, что я до сих пор:

// Here's my data model 
var viewModel; 
$.getJSON('/myJSONdata', function (data) { 
    viewModel = ko.mapping.fromJS(data); 
    ko.applyBindings(viewModel); 
}); 

//convert mapped data to json format 
var jsonData = ko.mapping.toJSON(viewModel); 

// Do something to send the form data in json format back to the server on form submit 

<form data-bind="submit: doSomething"> 
    <label for="typeOfIncident">Do you agree?</label> 
    <label> 
    <input type="radio" name="doYouAgree" value="Yes" data-bind="value: doYouAgree" checked> 
    Yes 
    </label> 
    <label> 
    <input type="radio" name="doYouAgree" value="No" data-bind="value: doYouAgree"> 
    No 
    </label> 

    <!-- submit button --> 
    <button type="submit">Submit</button> 
</form> 

ответ

1

Чтобы сериализовать ViewModel обратно в JSON использовать ko.toJSON(myViewModel)

Я также рекомендую прочитать эту post.

Edit: Я может быть недопонимание, что вы хотели, но если вы хотите подать через ViewModel вы могли бы сделать это:

var viewModel; 
    $.getJSON('/myJSONdata', function (data) { 
     viewModel = ko.mapping.fromJS(data); 
     viewModel.doSomething = function(){ 
     var jsonData = ko.mapping.toJSON(viewModel); 
     $.ajax({ 
      type: "POST", 
      url: '/myJSONdata', 
      data: jsonData 
     }); 
     }; 
     ko.applyBindings(viewModel); 
    }); 
+0

Я использую ko.mapping.toJSON. Таким образом, я могу автоматизировать отображение, используя плагин mapping knockout.js. – simple

+0

, пожалуйста, покажите пример и предположите, что я ничего не знаю. – simple

+0

Что такое бэкэнд, получающий форму? Потому что это действительно зависит от того, как вы должны отправить его. У вас есть несколько вариантов здесь –