You didn't need $parent
If you're not in a child scope, (ala ng-repeat), you don't need the $parent:
app.controller('MainCtrl', function($scope) {
$scope.answers = { gender: 'Female' };
});
HTML
<div ng-controller="MainCtrl">
<input type="radio" value="Female" ng-model="answers.gender"/>
<input type="radio" value="Male" ng-model="answers.gender"/>
</div>
When to use $parent
Given your example shows ng-model="$parent.gender", it looks like you think you need to get gender from the parent scope, this is only really necessary in an ng-repeat, which creates a child scope. You might find this when you create a list of radio buttons with a repeater:
JS:
app.controller('MainCtrl', function($scope) {
$scope.radioItems = ['Male', 'Female', 'Other'];
$scope.answers = {
gender: 'Female',
};
});
HTML:
<div ng-repeat="radioItem in radioItems">
<input type="radio" value="radioItem" ng-model="$parent.answers.gender"/>
</div>
EDIT: More detailed explanation of what's going on.
$parenton there? What's the context? Are you in a ng-repeat?