使用KnockoutJS将数据保存在对象中

时间:2016-11-10 21:06:08

标签: knockout.js save

我是KnockoutJS的新手。我有一个带有多个控件的表单 - 复选框,选项按钮,文本框等。单击“保存”按钮,而不是从单个控件或视图模型中读取值并进行ajax调用以保存数据,我需要将输入的数据保存到对象中,将对象转换为JSON,

var x =  ko.toJSON(ObjectwithData()); 

然后使用ajax,调用save例程。 请指导我如何实现这一目标。我有样本代码,这样做很棒。

1 个答案:

答案 0 :(得分:0)

你的问题不明确,但这就是我所理解的。

您需要将表单中的所有数据绑定到Json对象。

例如:

在Html:

<div id="root">
  <p>Name</p>
  <p>
    <input type="text" data-bind="value:Name" />
  </p>
  <p>Email</p>
  <p>
    <input type="text" data-bind="value:Email" />
  </p>
  <p>Phone</p>
  <p>
   <input type="text" data-bind="value:Phone" />
  </p>
  <p>
    <button id="submit" data-bind="click:submit">Submit</button>
  </p>
</div>

at Script

$(document).ready(function() {

  var viewModel = function viewModel() {
    var self = this;
    self.Name = ko.observable("");
    self.Email = ko.observable("");
    self.Phone = ko.observable("");

    self.submit = function(){
    var postData = self.koToJson();

    }

    self.koToJson = function(){
    return {
    Name : self.Name(),
    Email: self.Email(),
    Phone: self.Phone()
    };
    }

  }
  ko.applyBindings(viewModel);



});

此处self.koToJson函数用于将KO数据转换为Json。

了解更多信息,请访问此jsFiddile https://jsfiddle.net/ninshidme/nk45Lvnv/4/

如果这有助于您不要忘记将其标记为答案。

快乐编码。