Переключатели ng-value, ng-model и ng-click

#javascript #html #angularjs

#javascript #HTML #angularjs

Вопрос:

У меня есть простая форма, которая отображает элементы и предоставляет переключатели. Переключатели отображаются так, как ожидалось. Моя цель — получить значение ‘item.chosen’ в функции selectRadioButton. Я получаю элемент, но item.chosen не определен. Что я здесь делаю не так?
HTML:

 <div class="item" ng-if="ctrl.items" ng-repeat="item in ctrl.items">
    <input type="radio" ng-model="item.chosen"
        ng-value=true ng-click="ctrl.selectRadioButton(item)">
</div>
  

JS:

 this.selectRadioButton = function(item){
    if(item.chosen) {
        console.log('Got the chosen value');
    }
}
  

Комментарии:

1. Не могли бы вы вставить фрагмент шаблона туда, где вы определяете ctrl ? Может $ctrl быть, следует использовать вместо этого?

2. Переключатели отображаются как ожидалось, что означает, что ctrl определен правильно.

Ответ №1:

Вот несколько примеров кода того, как вы должны работать с переключателями в AnuglarJS.

Контроллер:

   angular.module('radioExample', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.color = {
        name: 'blue'
      };
      $scope.specialValue = {
        "id": "12345",
        "value": "green"
      };
    }]);
  

HTML:

 <form name="myForm" ng-controller="ExampleController">
  <label>
    <input type="radio" ng-model="color.name" value="red">
    Red
  </label><br/>
  <label>
    <input type="radio" ng-model="color.name" ng-value="specialValue">
    Green
  </label><br/>
  <label>
    <input type="radio" ng-model="color.name" value="blue">
    Blue
  </label><br/>
  <tt>color = {{color.name | json}}</tt><br/>
 </form>
  

Проверьте документацию для получения дополнительной информации