2016-03-08 66 views
0

的Javascript:单选按钮设置属性

functional OrderViewModel() { 
    this.selectedVehicle = ko.observable(); 

    this.vehicles = ko.observableArray([ 
    new VehicleViewModel('Toyota'), 
    new VehicleViewModel('Ford'), 
    new VehicleViewModel('Chevy') 
    ]); 
} 


function VehicleViewModel(name) { 
    this.name = name; 
} 


ko.applyBindings(new OrderViewModel()); 

HTML:

<div> 
    <!--ko foreach: $data.vehicles --> 
     <label> 
      <input type="radio" data-bind="value: $data.name, checked: $parent.selectedVehicle" /> 
      <span data-bind="text: $data.name"></span> 
     </label> 
    <!-- /ko --> 
</div> 

如何使它更新OrderViewModel与 “selectedVehicle” 属性选择的VehicleViewModel(而不是名称)?

回答

2

你基本上有它。看看这个 https://jsfiddle.net/16hozLzL/

<div> 
    <!--ko foreach: $data.vehicles --> 
     <label> 
      <input type="radio" data-bind="value: $data, checked: $parent.selectedVehicle" /> 
      <span data-bind="text: $data.name"></span> 
     </label> 
    <!-- /ko --> 
</div> 

只是删除从值绑定。名称,它将整个对象

+0

的事情是,设置HTML值属性为“[Object对象]”绑定... ..是有效的HTML(或508兼容)? – montisqu

+0

不知道,但它是你正在寻找的解决方案 – QBM5