我需要一些帮助 . 我正在尝试创建一个包装下拉值的自定义组件,并根据是否需要显示/隐藏默认的--Select--选项 . (我想稍后将其他自定义逻辑应用于此组件)
如何通过父级的被动形式设置我的自定义控件中的Validator.required?
我是Angular的新手,但不是AngularJS
父页面html:
id="siteType"
formControlName="code"
[items]="arrayOfItems">
父页面.ts:
export class MyPage {
serviceForm: FormGroup = this.fb.group({
siteType: this.fb.group({
code: [serviceData.siteType, Validators.required]
})
});
自定义控件html:
--Select--
{{ item }}
定制控制ts:
import { Component, Input, Output, EventEmitter, forwardRef, OnInit} from '@angular/core';
import { NG_VALIDATORS, FormControl, Validator, NgForm, FormBuilder } from '@angular/forms';
@Component({
selector: 'my-dropdownlist',
templateUrl: './ponent.html',
providers: [
{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => DropdownListComponent),
multi: true
}
]
})
export class MyDropdownListComponent implements Validator, OnInit {
@Input() items: any[];
@Input() required: boolean = false;
@Input() formControlName: string;
private selectedValue: any;
ngOnInit() {
//Some way to get at the Validator.required set on the parent form here so I can tell whether to apply it to my dropdown?
}
public validate(c: FormControl) {
return null; //TODO for additional future validation
}
}