Существует настраиваемый компонент ввода, который используется в реактивной форме с проверкой:
@Component({
moduleId: module.id.toString(),
selector: 'custom-select',
templateUrl: 'custom-select.component.html',
styleUrls: ['custom-select.component.css']
})
export class CustomSelectComponent {
@Input() public items: SelectModel[];
public model: SelectModel;
constructor(private customSelectService: CustomSelectService) {
this.customSelectService.Selected.subscribe((data: SelectModel) => {
this.model = data;
});
}
public newSelect(select: SelectModel): void {
this.customSelectService.updateSelected(select);
}
}
который отлично работает, я использую custom-select
в реактивной форме и хочу проверить его, как показано ниже:
<custom-select id="country" [items]="selectItems" formControlName="country"></custom-select>
<div *ngIf=" myFrom.controls['country'].invalid && (myFrom.controls['country'].dirty
|| myFrom.controls['country'].touched) " class="ha-control-alert">
<div *ngIf="myFrom.controls['country'].hasError('required')">Country is required</div>
</div>
так я объявляю форму в компоненте
this.myFrom = this.formBuilder.group({
country: [null, Validators.required],
})
но когда я добавляю formControlName
для проверки, появляется сообщение об ошибке: Нет средства доступа к значению для элемента управления формой с именем: 'страна'. Как мне с этим справиться?
value accessor
необходимо реализовать в настраиваемых входах. можешь опубликоватьcustom-select
- person Rajez   schedule 10.09.2017ControlValueAccessor
, тогда он будет работать с обоими типами форм. @Rajez это уже в посте - person jonrsharpe   schedule 10.09.2017