AngularJS ng-model data from radio button

I have a short form in AngularJS . I use ng-repeat to show genders and validate their radio buttons The problem is that I want to get the value of the radio button selected and print this out using ng-model. How can achieve this?

Here Plunker

Answers


The problem is you're binding selected gender, a primitive value, to your $scope. When you use ng-repeat it creates a new scope and inherits the values from it's parent. Unfortunately, because your values are primitive (a number), they are passed by value instead of reference, so you only get one way binding. This is why it's always recommended to store values on an object in scope instead of directly.

Here's a link to a working controller: http://plnkr.co/edit/Y7sTEaYMx0aD4fPDHAMA?p=preview

I added this, and adjusted the rest of the code accordingly:

$scope.user = {
    selectedGender: 'none'
}

The solution by Mike Robinson is the most elegant. However, a quick fix is to add $parent:

            <input type="radio" ng-model="$parent.selectedGender" name="radiob" id="{{g.id}}" value="{{g.id}}" required />{{g.name}}

This will change the selectGender in the parent scope of the ng-repeat.

http://plnkr.co/edit/M5cos7xFBA9a0eRWhHi9?p=info


Need Your Help

security deleting a mysql row with jQuery $.post

jquery mysql security post

I want to delete a row in my database and found an example on how to do this with jQuery's $.post()

Method to detect a parked page?

domain-name

Anyone know of a way to programatically detect a parked web page? That is, those pages that you accidentally type in (or intentionally sometimes) and they are hosted by a domain parking service with