Necesito validar dos campos de fecha. Por lo tanto, utilicé una directiva personalizada para hacerlo. Pero mi directiva no se carga y da error.
esta es mi directiva personalizada
directiva
import {AbstractControl, NG_VALIDATORS, Validator} from '@angular/forms'; import {Directive, Input} from '@angular/core'; @Directive({ selector:'isLessThanStartDate', providers: [{provide:NG_VALIDATORS, useExisting:'EndDateValidatorDirective', multi:true}] }) export class EndDateValidatorDirective implements Validator{ @Input('isLessThanStartDate') shouldbeless:any; validate(control: AbstractControl):{[key:string]:any} | null { const sDate = new Date(this.shouldbeless); const eDate = new Date (control.value); console.log(this.shouldbeless); console.log(control.value); console.log((sDate > eDate) ? {'StartDateIsMore':true}:null); return (sDate > eDate) ? {'StartDateIsMore':true}:null } }estos son mis selectores de fechas
<input class="form-control ngbfield" placeholder="yyyy-mm-dd" name="fromdatesearch" [readonly]="true" #fd="ngModel" [(ngModel)]="holidaysearch.fromdatesearch" ngbDatepicker #d1="ngbDatepicker" (dateSelect)="selectedFromDate(holidaysearch.fromdatesearch)" [maxDate]="maxDate"> <input class="form-control ngbfield" isLessThanStartDate="{{fd.value}}" placeholder="yyyy-mm-dd" [minDate]="minDate" name="todatesearch" [readonly]="true" #td="ngModel" (dateSelect)="selectedToDate(holidaysearch.todatesearch)" [(ngModel)]="holidaysearch.todatesearch" ngbDatepicker #d2="ngbDatepicker" > Importé mi directiva personalizada en app.module. 
Estoy usando esta directiva dentro del componente Holiday. Pero no adjunté la directiva en el módulo de vacaciones. importó solo el módulo de la aplicación.
este es el error
Necesito usar una directiva personalizada dentro del componente de vacaciones. como lo hago correctamente
los selectores de atributos deben marcarse en el selector con corchetes [] , ahora no se reconoce como una directiva, por lo que Angular le dice correctamente que no existe tal atributo en un campo de entrada.
Así que cambia tu selector a:
selector:'[isLessThanStartDate]',