【发布时间】:2014-01-21 06:47:49
【问题描述】:
我正在尝试以 JSON 对象的形式将绑定到特定 observable 的表单字段发送到我的服务器,但我在服务器端收到空的 JSON 字符串。我不想发送整个视图模型来完成这项任务。 这是我到目前为止的javascript:
$(document).ready(function(){
ko.applyBindings(new AddSubjectKo());
});
function AddSubjectKo()
{
var self=this;
self.name = ko.observable();
self.quiz = ko.observable();
self.ass = ko.observable();
self.oht = ko.observable();
self.sess = ko.observable();
self.ese = ko.observable();
self.SubjectAdded=function()
{
$.ajax({
url: "api/courses",
type: "post",
data: formToJSON(),
contentType: "application/json",
success: function(data){
alert("success");
},
error:function(jqXHR, textStatus, errorThrown) {
alert("failure");
}
});
function formToJSON() {
alert(self.name());
return JSON.stringify({
"name": self.name,
"quiz": self.quiz,
"ass": self.ass,
"oht": self.oht,
"sess": self.sess,
"ese": self.ese,
});
}
}
//$("#alert").slideDown();
}
【问题讨论】:
-
你只需要使用括号
-
JSON.stringify不知道什么是 observables,它将它们视为普通函数,无法进行有意义的字符串化。将 这些可观察对象的值 传递给JSON.stringify,就像您在alert()中所做的那样。
标签: javascript jquery ajax json knockout.js