2016-03-08 1 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> 

Как сделать его обновить свойство "selectedVehicle" в OrderViewModel с выбранный 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> 

Просто удалите .name из значений связывания, и он будет связывать весь объект

+0

Дело в том, что устанавливает атрибут HTML значение «[объект Object]» ... ..Этот действительный HTML (или 508 совместимый)? – montisqu

+0

Не знаете, но это решение, которое вы ищете – QBM5

Смежные вопросы