2013-02-13 2 views
0

knockout.j를 수행 할 작업이 있습니다. 그러나 json 개체로 텍스트 상자 값을 만들 수 없습니다. 필드 이름과 나이가있는 모델 학생이 있습니다. 새 학생을 만들 때 값을 json 개체로 설정할 수 없습니다. newlist.html.erbknockout 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

+0

실제로 오류 메시지가 없습니다 .. 저장 기능에 들어 가지 않습니다 – Niths

+1

저장 기능이 viewModel에 없습니다. 따라서 저장 기능을 실행할 수 없습니다 – Ray

답변

1

당신은 모델 작업이 해결 될 때 당신이 여기

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

다음 방법으로 JSON으로 변환 할 수 있습니다 Solution

관련 문제