0

我有一项任务要做 knockout.js。但我无法将文本框值创建为 json 对象。我有一个具有字段名称和年龄的模型学生。为了创建新学生,我无法将值设置为 json 对象。新列表.html.erb

 <script>
$(document).ready(function() {
var viewModel = {
    firstName: ko.observable(),

    _age: ko.observable(),
    validationMessage: ko.observable()
};
var self = this;
self.save = function() {
        var dataToSave =firstName: ko.observable();
                        _age: ko.observable();
                        alert("Could now send this to server: " + JSON.stringify(viewModel));
                        }
viewModel.Age = ko.dependentObservable({
    read: viewModel._age,
    write: function (value) {
        if (!isNaN(value)) {
            this._age(value);
            this.validationMessage("");
        }
        else {
            this.validationMessage("Age must be a number!");
        }
    },


    owner: viewModel

});

ko.applyBindings(viewModel);
});
</script>
<h1>Testing</h1>
Name: <input type="text" data-bind="
                                    value: firstName,
                                    valueUpdate : 'afterkeydown'
                                    "/>
<br />

Age: <input type="text" data-bind="value: Age, valueUpdate : 'afterkeydown'" />



<Br /> 
<span data-bind="text: validationMessage" style="color:Red"></span>

<Br />
<button data-bind='click: save'>Submit</button>
<Br />

但它显示了一些错误。如何创建一个 json 对象?

4

1 回答 1

1

您可以通过以下方式将模型转换为 json

var dataToSave = {
                    firstName: viewModel.firstName(),
                    _age: viewModel._age()
                 }  

在这里您的任务已解决:解决方案

于 2013-02-13T09:26:04.503 回答