2017-09-19 8 views
0

Je reçois cette erreur chaque fois que j'enregistre mon formulaire. Datepicker: value not recognized as a date object by DateAdapter. at MdDatepickerInput.set [as value]Datepicker: valeur non reconnue comme objet date par DateAdapter

Ceci est le datepicker d'entrée.

<md-input-container> 
     <input mdInput 
       (dateChange)="saveForm()" 
       placeholder="Event Date" 
       [mdDatepicker]="eventDatePicker" 
       formControlName="eventDate" 
       [(ngModel)]="editingFundraiser.eventDate"/> 
     <md-datepicker-toggle mdSuffix [for]="eventDatePicker"></md-datepicker-toggle> 
     <md-datepicker #eventDatePicker></md-datepicker> 
    </md-input-container> 

C'est la forme dans le fichier ts

private initForm() { 
    this.myForm = this.fb.group({ 
     eventDate: new FormControl(this.editingForm.eventDate, Validators.required), 
    }); 
} 

C'est le modèle pour la forme

export class MyForm 
    eventDate: any; 
} 

J'ai lu plusieurs articles et je l'ai essayé de créer une coutume adaptateur de date en vain. Quelqu'un peut-il m'aider avec ce problème?

+0

quelle valeur vous récupérez du serveur? Il est à ce jour objet –

+0

Je reçois un objet date du serveur. Il semble que le '[(ngModel)]' cause le problème @PankajParkar mais je ne peux pas le supprimer car j'en ai besoin pour enregistrer la valeur – Rafael

+0

@Rafael Je vois que vous avez déjà résolu ceci, mais êtes-vous sûr 'eventDate' est un objet Date? S'il vient à peine de votre API, c'est probablement une chaîne ISO8601. Ceux-ci seront probablement pris en charge directement [dans la prochaine version] (https://github.com/angular/material2/pull/7091). –

Répondre

0

J'ai créé une nouvelle fonction pour résoudre mon problème.

</md-input-container>   
    <input mdInput 
      (dateChange)="saveDate($event)" 
      placeholder="Event Date" 
      [mdDatepicker]="eventDatePicker" 
      formControlName="eventDate"/> 
    <md-datepicker-toggle mdSuffix [for]="eventDatePicker"></md-datepicker-toggle> 
    <md-datepicker #eventDatePicker></md-datepicker> 
</md-input-container> 

je suis passé la event.value dans cette fonction et a couru la fonction de sauvegarde à la fin

saveDate(event) { 
    this.editingFundraiser.eventDate = new Date(event.value); 
    this.saveForm(); 
}