Radio单选框

单选框

代码演示

基本用法

最简单的用法。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'demo-radio-basic',
  4. template: `
  5. <div>
  6. <List [renderHeader]="renderHeader">
  7. <RadioItemGroup [(ngModel)]="selectedStatus1.value" (onChange)="onChange($event)">
  8. <RadioItem *ngFor="let i of data" [name]="i.name" [value]="i.value">
  9. {{ i.name }}
  10. </RadioItem>
  11. </RadioItemGroup>
  12. </List>
  13. <WhiteSpace [size]="'lg'"></WhiteSpace>
  14. <List>
  15. <RadioItemGroup [(ngModel)]="selectedStatus2.value" (onChange)="onChange2($event)">
  16. <RadioItem *ngFor="let i of data2" [name]="i.name" [value]="i.value">
  17. {{ i.name }}
  18. <Brief>{{ i.extra }}</Brief>
  19. </RadioItem>
  20. </RadioItemGroup>
  21. </List>
  22. <List [renderHeader]="renderHeader2">
  23. <RadioItemGroup [(ngModel)]="selectedStatus1.value" (onChange)="onChange($event)">
  24. <RadioItem *ngFor="let i of data" [name]="i.name" [value]="i.value" [disabled]="true">
  25. {{ i.name }}
  26. </RadioItem>
  27. </RadioItemGroup>
  28. </List>
  29. <WhiteSpace [size]="'lg'"></WhiteSpace>
  30. <List>
  31. <RadioItemGroup [(ngModel)]="selectedStatus2.value" (onChange)="onChange2($event)">
  32. <RadioItem *ngFor="let i of data2" [name]="i.name" [value]="i.value" [disabled]="disabled">
  33. {{ i.name }}
  34. <Brief>{{ i.extra }}</Brief>
  35. </RadioItem>
  36. </RadioItemGroup>
  37. </List>
  38. <Flex style="padding: 15px">
  39. <FlexItem style="padding: 15px 0; color: #888; flex: none">Radio demo(dustomized style)</FlexItem>
  40. <FlexItem>
  41. <label
  42. Radio
  43. class="my-radio"
  44. [name]="'Last Agree Item'"
  45. [value]="'Agree Submit'"
  46. (onChange)="onChange3($event)"
  47. >Agree</label
  48. >
  49. </FlexItem>
  50. </Flex>
  51. </div>
  52. `,
  53. styles: [
  54. `
  55. /deep/ .my-radio .am-radio {
  56. padding: 2.5px;
  57. border: 1px solid #ccc;
  58. border-radius: 50%;
  59. margin-right: 5px;
  60. box-sizing: initial;
  61. }
  62. `
  63. ]
  64. })
  65. export class DemoRadioBasicComponent {
  66. disabled: boolean = true;
  67. selectedStatus1 = { value: 0, name: 'doctor' };
  68. selectedStatus2 = { value: 0, name: 'basketball', extra: 'details' };
  69. data = [{ value: 0, name: 'doctor' }, { value: 1, name: 'bachelor' }];
  70. data2 = [{ value: 0, name: 'basketball', extra: 'details' }, { value: 1, name: 'football', extra: 'details' }];
  71. constructor() {}
  72. renderHeader() {
  73. return 'RadioItem demo';
  74. }
  75. renderHeader2() {
  76. return 'dd';
  77. }
  78. onChange = event => {
  79. console.log('ngmodel value: ', JSON.stringify(this.selectedStatus1));
  80. console.log('output radio status: ', JSON.stringify(event));
  81. }
  82. onChange2 = event => {
  83. console.log('ngmodel value: ', JSON.stringify(this.selectedStatus2));
  84. console.log('output radio status: ', JSON.stringify(event));
  85. }
  86. onChange3 = e => {
  87. this.disabled = false;
  88. console.log('agree submit', e);
  89. }
  90. }

Radio单选框 - 图1

API

Radio

参数说明类型默认值
[name]namestring-
[value]valuestring-
[checked]指定当前是否选中boolean-
[disabled]禁用booleanfalse
(onChange)change 事件触发的回调函数EventEmitter<name: string, value: string, checked: boolean>-

RadioItemGroup

单选框组合,包裹一组RadioItems。

参数说明类型默认值
[(ngModel)]指定选中的RadioItem对应的valuestring | number-
(onChange)RadioItem选中变化时的回调EventEmitter<{name, value}>-

RadioItem

基于ListItemRadio进行封装,ListItemextra属性固定传入Radio,其他属性和ListItem一致(除了onClick回调事件不可用之外,因为在这里是由RadioItemGroup传递回调事件)。

参数说明类型默认值
[name]namestring-
[value]valuestring-
[disabled]禁用booleanfalse