UNPKG

ionic-angular

Version:

[![Circle CI](https://circleci.com/gh/driftyco/ionic.svg?style=svg)](https://circleci.com/gh/driftyco/ionic)

75 lines (71 loc) 2.46 kB
/** * @ngdoc directive * @name ionRadio * @module ionic * @restrict E * @codepen saoBG * @description * The radio directive is no different than the HTML radio input, except it's styled differently. * * Radio behaves like [AngularJS radio](http://docs.angularjs.org/api/ng/input/input[radio]). * * @usage * ```html * <ion-radio ng-model="choice" ng-value="'A'">Choose A</ion-radio> * <ion-radio ng-model="choice" ng-value="'B'">Choose B</ion-radio> * <ion-radio ng-model="choice" ng-value="'C'">Choose C</ion-radio> * ``` * * @param {string=} name The name of the radio input. * @param {expression=} value The value of the radio input. * @param {boolean=} disabled The state of the radio input. * @param {string=} icon The icon to use when the radio input is selected. * @param {expression=} ng-value Angular equivalent of the value attribute. * @param {expression=} ng-model The angular model for the radio input. * @param {boolean=} ng-disabled Angular equivalent of the disabled attribute. * @param {expression=} ng-change Triggers given expression when radio input's model changes */ IonicModule .directive('ionRadio', function() { return { restrict: 'E', replace: true, require: '?ngModel', transclude: true, template: '<label class="item item-radio">' + '<input type="radio" name="radio-group">' + '<div class="radio-content">' + '<div class="item-content disable-pointer-events" ng-transclude></div>' + '<i class="radio-icon disable-pointer-events icon ion-checkmark"></i>' + '</div>' + '</label>', compile: function(element, attr) { if (attr.icon) { var iconElm = element.find('i'); iconElm.removeClass('ion-checkmark').addClass(attr.icon); } var input = element.find('input'); forEach({ 'name': attr.name, 'value': attr.value, 'disabled': attr.disabled, 'ng-value': attr.ngValue, 'ng-model': attr.ngModel, 'ng-disabled': attr.ngDisabled, 'ng-change': attr.ngChange, 'ng-required': attr.ngRequired, 'required': attr.required }, function(value, name) { if (isDefined(value)) { input.attr(name, value); } }); return function(scope, element, attr) { scope.getValue = function() { return scope.ngValue || attr.value; }; }; } }; });