Angular5中提取公共组件之radio list的实例代码

本文给大家说一下Radio List的公共组件提取。

Radio List组件提取起来很方便,不想Checkbox那么复杂。

radio-list.component.ts

import { Component, OnInit, Input, Output, EventEmitter } from \'@angular/core\';
import { RadioItem } from \'../../model/radio\';
import { NgModel } from \'@angular/forms\';
@Component({
  selector: \'app-radio-list\',
  templateUrl: \'./radio-list.component.html\',
  styleUrls: [\'./radio-list.component.css\']
})
export class RadioListComponent implements OnInit {
  @Input() list: RadioItem[];
  @Input() name: string;
  @Input() colNum: number = 6;
  @Input(\"selectModel\") model: string;
  @Output(\"selectChange\") onChange: EventEmitter<any> = new EventEmitter<any>();
  constructor() { }
  ngOnInit() {
  }
  changeSelected() {
    let data = { value: this.model, name: this.name };
    this.onChange.emit(data);
  }
}

radio-list.component.html

<div *ngIf=\"list\" class=\"form-row\">
  <div class=\"col-{{colNum}} mb-2\" *ngFor=\"let item of list\">
    <div class=\"form-check abc-radio abc-radio-primary\">
      <input class=\"form-check-input\" type=\"radio\" [value]=\"item.id\" [(ngModel)]=\"model\" (change)=\"changeSelected()\" name=\"{{name}}\" id=\"{{name}}_{{item.id}}\">
      <label class=\"form-check-label\" for=\"{{name}}_{{item.id}}\">
        {{item.name}}
      </label>
    </div>
  </div>
</div>

在相关引用的module中注册

import { RadioListComponent } from \'../components/radio-list/radio-list.component\';
export const routes = [
  { path: \'\', component: xxxComponent, pathMatch: \'full\' }
];
@NgModule({
  imports: [...],
  declarations: [...
    , RadioListComponent
    , ...],
  providers: []
})
export class xxxModule {
  static routes = routes;
}

对应的html中引用如下:

 <app-radio-list [list]=\"sourceArr\"
         [name]=\"\'selectedSource\'\"
         [colNum]=\"12\"
        [(selectModel)]=\"selectedSource\"
        (selectChange)=\"selectChange($event)\">
 </app-radio-list>

按照如上步骤,还缺少对应的selectChange($event):

 selectChange(model: any) {
   this[model.name] = model.value;
 }

以上所述是小编给大家介绍的Angular5中提取公共组件之radio list的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容