The below code tries to bind observable properties of a model to template. While running the application, the data on the radio button is displayed perfectly but when clicked does not changes the models property values.
<script type="text/html" id="RadioButton">
<input type = "radio" data-bind = "attr: {'name': ko.computed(function() { return $parents[0].QuestionID().toString(); }), 'value': ko.computed(function() { return $parents[0].OptionStatement().toString(); }) }, checked: $parents[1].Answer_RadioList().TextResponse() "/>
<span data-bind = "text: $parents[1].Answer_RadioList().TextResponse()"></span>
</script>
The model to the application looks like this:
function QuestionList(T) { this.QuestionID = ko.observable(T.QuestionID); this.Question = ko.observable(T.Question); this.SurveyID = ko.observable(T.SurveyID); this.CategoryID = ko.observable(T.CategoryID); this.SubCategoryID = ko.observable(T.SubCategoryID); this.ParentID = ko.observable(T.ParentID); this.IsMandatory = ko.observable(T.IsMandatory); this.IsARadioButtonControl = ko.observable(T.IsARadioButtonControl); if (T.Answer_RadioList) { this.Answer_RadioList = ko.observable(new Answer_RadioList(T.Answer_RadioList)); } this.HasInternalControls = ko.observable(T.HasInternalControls); this.InternalControlTypeID = ko.observable(T.InternalControlTypeID); this.OptionListCollection = ko.observableArray([]); this.InternalQuestionListCollection = ko.observableArray([]); } function OptionList(T) { this.OptionID = ko.observable(T.OptionID); this.OptionStatement = ko.observable(T.OptionStatement); this.QuestionID = ko.observable(T.QuestionID); this.IsMandatory = ko.observable(T.IsMandatory); this.IsTabularControl = ko.observable(T.IsTabularControl); this.ControlTypeID = ko.observable(T.ControlTypeID); this.ControlList = ko.observable(new ControlList(T.ControlList)); this.TabularControl = ko.observableArray([]); this.AxisSummation = ko.observable(new AxisSummation(T.AxisSummation)); this.IsADropDownList = ko.observable(T.IsADropDownList); this.Answer_OptionList = ko.observable(new Answer_OptionList(T.Answer_OptionList)); } function Answer_RadioList(T) { this.Answer_RadioListID = ko.observable(T.Answer_RadioListID); this.QuestionID = ko.observable(T.QuestionID); this.TextResponse = ko.observable(T.TextResponse); }