2015-01-20 7 views
1

나는 이런 식으로 뭔가를 가지고 :개체의 체크 아웃 값을 녹아웃 observableArray에 바인딩하는 방법은 무엇입니까?

var ScheduleDay = function(day, times) { 
    var self = this; 
    self.day = ko.observable(day || ""); 
    self.times = ko.observableArray(times || []); 
}; 

function viewModel() { 
    var self = this; 
    self.schedule = ko.observableArray([ 
     new ScheduleDay("Monday"), 
     new ScheduleDay("Tuesday"), 
     new ScheduleDay("Wednesday"), 
     new ScheduleDay("Thursday"), 
     new ScheduleDay("Friday"), 
     new ScheduleDay("Saturday"), 
     new ScheduleDay("Sunday") 
    ]) 
} 

ko.applyBindings(new viewModel()); 

<input id="mondaySchedule" type="checkbox" data-bind="checked ???"> 

나는 각 요일 3 개 확인란이 : 오전, 오후, 저녁을. 일정과 같은 모델을 원합니다 : {월요일 : [ "오전"오후 "] 화요일 오후 [오후]]

+0

(참/거짓, 예/아니오) 또는 1 값. 'times' 속성 initialy는 빈 배열을 포함하므로이 관찰 가능을 체크 박스에 바인딩 할 의미가 없습니다. 당신이 얻고 자하는 것에 대한 자세한 내용을 제공해 줄 수 있습니까? –

+0

집합에서 왜 하나의 값이 필요합니까? 라디오 버튼을 더 많이 사용하지 않겠습니까? 오전, 오후, 저녁 세 가지 체크 박스가 있습니다. 일정 : {월요일 : [ "오전", 오후 "], 화요일 : ["오후]] – Josh

+0

예, 각 확인란은 주어진 하나의 값만 표시합니다. 세. 내 대답을 보라. –

답변

4

의견에 질문을 지정 했으므로 당신이 원하는 것을 할 것,이 간단한 마크 업을 살펴보고 제안 :

<ul data-bind="foreach: schedule"> 
    <li> 
     <strong data-bind="text: day"></strong> 
     <input type="checkbox" data-bind="checked: times" value='morning' /> Morning 
     <input type="checkbox" data-bind="checked: times" value='afternoon' /> Afternoon 
     <input type="checkbox" data-bind="checked: times" value='evening' /> Evening 
    </li> 
</ul> 

작동 예 : http://jsfiddle.net/qjzbossb/ 체크 박스는 이진 값을 저장하기위한 것입니다