Para vincular dados com botões de opção / caixa de seleção em Angular JS, usamos ng-model
:
Supondo que haja um instructor
em $scope
:
$scope.instructor = {
isActive: true,
course: 'chemistry'
};
Para vincular instructor.course
, que é um valor de string:
<input type="radio" name="course" value="physics" ng-model="instructor.course"/> Physics
<input type="radio" name="course" value="chemistry" ng-model="instructor.course"/> Chemistry
Mas se fizermos o mesmo com instructor.isActive
um valor booleano:
<input type="radio" name="status" value="true" ng-model="instructor.isActive"/> Active
<input type="radio" name="status" value="false" ng-model="instructor.isActive"/> Inactive
O valor padrão nunca é vinculado.
É aí que ng-value
é necessário. Diz ao Angular para tratar o valor booleano como uma string.
<input type="radio" name="status" ng-model="instructor.isActive" ng-value="true"/> Active
<input type="radio" name="status" ng-model="instructor.isActive" ng-value="false"/> Inactive
O exemplo de código funcional é mostrado em http://jsfiddle.net/blaise_liu/uEZ9r/3/ .