2013-02-13 83 views
0

我有一个任务做knockout.js.But我不能创建文本框值为json对象。 我有一个模型学生的字段名称和age.For创建新学生我不能将值设置为json对象。 newlist.html.erb如何在knockout js中设置json值?

<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对象?

+0

能否请您发布错误消息? – nemesv 2013-02-13 08:06:44

+0

其实没有任何错误信息..它没有进入保存功能 – Niths 2013-02-13 08:08:18

+1

保存功能不在你的viewModel中,这就是为什么你不能执行保存功能 – Ray 2013-02-13 08:10:33

回答

1

可以转换模式,在明年的方式

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

这里JSON你的任务是解决:Solution