angular - Hur använder jag ett datumfält med ngModel?


Jag har ett datuminmatningsfält som detta

<input [(ngModel)]="value"
       type="text"
class="form-control">

Hur visar jag och skickar värdet?

Användarinmatning ska formateras som dd/MM/yyyy och skickat värde ska formateras som yyyy/MM/dd.

Svar #1

I din mall, lägg till en keyup-händelselyssnare på ett inmatningsfält och ställ in namn på ett annat samtidigt som det andra hålls dolt.

<input type="text" (keyup)="changeFormat($event)" [(ngModel)]="value" placeholder="Enter a Date here">
<input type="hidden" name="dateField" [attr.value]="returnValue"><hr>
<h1 [hidden]="!value">Hello {{returnValue}}!</h1>

I komponenten skapa metoden för att ändra formatet på datum från inmatningsfältet och sätta det till en annan variabel returnValue som kommer att lagra det formaterade datumet, som visas nedan.

value: string = '';
returnValue : string = "";

changeFormat($event):void {
  let argDateArr = this.value.split("/");
  let year = argDateArr[2];
  argDateArr[2] = argDateArr[0];
  argDateArr[0] = year;
  this.returnValue = argDateArr.join("/");
}

Plunker kan hittas här

Hoppas det här hjälper.

Svar #2

Först

npm install ng2-datepicker --save

Du bör använda inmatningstyp datum som nedan

 <input id="textinput" [(ngModel)]="startDate" name="textinput" type="date" placeholder="Start Date" class="form-control input-md">

Se till att i ditt package.json har

"ng2-datepicker": "^1.4.7" i dess beroenden

Din utdata kommer att vara som