Проблема в том, что вы даже не установили атрибут значения для переключателей, а также не изменили свойство current
в controller/application.js
.
Вы должны изменить три вещи в templates/application.hbs
.
Сначала вы должны включить атрибут значения в переключатели value={{option}}
и действие над атрибутом onclick onclick={{action 'changeChecked'}}
, чтобы указать изменение. Поскольку сам помощник {{eq}}
возвращает true or false
, вы также можете написать проверенный атрибут без помощника {{if}}
как checked={{eq option current}}
Окончательный тег ввода должен выглядеть следующим образом:
<input type="radio" name="colors" checked={{eq option current}} value={{option}} onclick={{action 'changeChecked'}}>
После этого в controllers/application.js
нужно добавить действие changeChecked()
actions:{
changeChecked(){
set(this,'current',$('input:checked').val())
}
},
А также, оператор возврата в whichChecked
должен быть изменен на:
return $('input:radio:checked').val();
Теперь вы можете динамически получать выбранный переключатель в DOM.