javascript - formatera ngb-timepicker så att den returnerar som en sträng och inte som ett objekt
Jag försöker få ngb-timepicker att returnera en sträng istället för ett objekt. För tillfället returnerar den följande:
{
"hour": 13,
"minute": 30
}
men jag skulle vilja att det återvände på det här sättet:
"13:30"
Detta är min html:
<div class="calender"> <ngb-datepicker #dp
[(ngModel)]="model"></ngb-datepicker>
<ngb-timepicker [(ngModel)]="time"></ngb-timepicker>
Med datepicker kunde jag omformatera det från ett objekt till en sträng med detta:
constructor(private dateFormatter: NgbDateParserFormatter) {
const string_date = this.dateFormatter.format(this.model);
}
Finns det en version av NgbDateParserFormatter som fungerar med tid?
Svar #1
Syntaxen [(ngModel)] kan bara ställa in en databunden egenskap. Om du behöver göra något mer eller något annat kan du skriva den utökade formen. Egenskapsbindningen [ngModel] tar hand om att uppdatera det underliggande input-DOM-elementet. Händelsebindningen (ngModelChange) meddelar omvärlden när det har skett en förändring i DOM.
HTML
<ngb-timepicker [(ngModel)]="time" (ngModelChange)="onTimeChange($event)"></ngb-timepicker>
<hr>
<pre>{{newTime}}</pre>
Komponent
export class AppComponent {
name = 'Angular 6';
public newTime:string='13:30';
time = {hour: 13, minute: 30};
onTimeChange(value:{hour:string,minute:string})
{
console.log(value)
this.newTime=`${value.hour}:${value.minute}`;
}
}
Live-demo
