我是KnockoutJS的新手。我有一个带有多个控件的表单 - 复选框,选项按钮,文本框等。单击“保存”按钮,而不是从单个控件或视图模型中读取值并进行ajax调用以保存数据,我需要将输入的数据保存到对象中,将对象转换为JSON,
var x = ko.toJSON(ObjectwithData());
然后使用ajax,调用save例程。 请指导我如何实现这一目标。我有样本代码,这样做很棒。
答案 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/
如果这有助于您不要忘记将其标记为答案。
快乐编码。