app.controller('radiusController', function($scope){
$scope.radii = [
{id:.25, checked:"false", name:"1/4 Mile"},
{id:.5, checked:"false", name:"1/2 Mile"},
{id:1, checked:"false", name:"1 Mile"},
{id:2, checked:"true", name:"2 Mile"},
{id:3, checked:"false", name:"3 Mile"},
{id:4, checked:"false", name:"4 Mile"},
{id:5, checked:"false", name:"5 Mile"}
];
$scope.handleRadioClick = function(radius){
window.radiochecked = radius.id;
};
});
<li ng-repeat="radius in radii" id="selectradius-{{radius.id}}">
<div class="radio">
<label>
<input type="radio" name="radius"
ng-model="radius.checked"
ng-change="handleRadioClick(radius)">
{{radius.name}}
</label>
</div>
</li>
How do I set the default radio button to be checked based on the checked value of scope radii? In this case the "2 Mile" should be checked by default.
plunker:
app.controller('radiusController', function($scope){
$scope.radii = [
{id:.25, checked:"false", name:"1/4 Mile"},
{id:.5, checked:"false", name:"1/2 Mile"},
{id:1, checked:"false", name:"1 Mile"},
{id:2, checked:"true", name:"2 Mile"},
{id:3, checked:"false", name:"3 Mile"},
{id:4, checked:"false", name:"4 Mile"},
{id:5, checked:"false", name:"5 Mile"}
];
$scope.handleRadioClick = function(radius){
window.radiochecked = radius.id;
};
});
<li ng-repeat="radius in radii" id="selectradius-{{radius.id}}">
<div class="radio">
<label>
<input type="radio" name="radius"
ng-model="radius.checked"
ng-change="handleRadioClick(radius)">
{{radius.name}}
</label>
</div>
</li>
How do I set the default radio button to be checked based on the checked value of scope radii? In this case the "2 Mile" should be checked by default.
plunker: http://plnkr.co/edit/RP9SpO1qGjn5Ua6pZJ3D?p=preview
Share Improve this question edited Aug 22, 2014 at 18:50 webmandman asked Aug 19, 2014 at 17:41 webmandmanwebmandman 3172 gold badges4 silver badges11 bronze badges 1-
set the value to ng-model variable so
$scope.radius.checked = $scope.radii[0]
– user2165424 Commented Aug 19, 2014 at 17:45
4 Answers
Reset to default 4Simple. Eventhough the angular docs do not mention ng-checked, it is available.
<input type="radio" name="radius"
ng-change="handleRadioClick(radius)"
ng-checked="radius.checked">
you can set the ng-model to the specified value you want in controller
$scope.radius.checked = $scope.radii[0]
All simple here
ngModel
holds a model(where we want store selected item)
ngValue
holds a value(what item related to this input)
To access scope
which we want, we should step up from ngRepeat
scope with $parent
.
<div ng-repeat="radius in radii">
<label>
<input type="radio" name="radius"
ng-model="$parent.model"
ng-value="radius" />
{{radius.name}}
</label>
</div>
Plunkr
Create an object to hold the selected value, like:
$scope.selectedValue = { id: 0 };
Update ng-model and value attributes like shown below:
<input type="radio" name="radius" ng-change="handleRadioClick()"
ng-model="selectedValue.id" value="{{radius.id}}">
See working sample: http://plnkr.co/edit/zpNItMx13YPH0guvod0D?p=preview