0

knockout.jsを実行するタスクがありますが、テキストボックスの値をjsonオブジェクトとして作成できません。名前と年齢のフィールドを持つモデルの学生がいます。新しい学生を作成するために、値をjsonオブジェクトとして設定できません。newlist.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 に答える