मैं पॉपअप में डेटपिकर (ng-boostrap) का उपयोग कर रहा हूं और मैं दिनांक प्रारूप को 'dd-mm-yyyy' में बदलना चाहता हूं।एनजी-बूटस्ट्रैप: क्या NgbInputDatepicker पर इनपुट मान के प्रारूप को बदलने के लिए कस्टम NgbDateParserFormatter को कार्यान्वित करना सही है?
यह बताता है कि इसे डिफ़ॉल्ट NgbDateISOParserFormatter को प्रतिस्थापित करने के लिए एक नया NgbDateParserFormatter लागू करने का हल किया जा सकता है।
लेकिन मैं सोच रहा था कि कोई और तरीका है या नहीं।
धन्यवाद, नेल्सन।
अद्यतन:
NgbDateParserFormatter का एक छोटा सा कार्यान्वयन moment.js का उपयोग कर
import {NgbDateParserFormatter, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';
import * as moment from 'moment';
export class NgbDateMomentParserFormatter extends NgbDateParserFormatter {
constructor(private momentFormat: string) {
super();
};
format(date: NgbDateStruct): string {
if (date === null) {
return '';
}
let d = moment({ year: date.year,
month: date.month - 1,
date: date.day });
return d.isValid() ? d.format(this.momentFormat) : '';
}
parse(value: string): NgbDateStruct {
if (!value) {
return null;
}
let d = moment(value, this.momentFormat);
return d.isValid() ? { year: d.year(),
month: d.month() + 1,
day: d.date() } : null;
}
}
और एक मॉड्यूल में (एनजी-बूटस्ट्रैप के संस्करण 1.0.0-alpha.14 के साथ परीक्षण), तो आप में शामिल पैरामीटर के रूप में दिनांक प्रारूप को इंगित करने के लिए एक कारखाने का उपयोग कर प्रदाता।
---
@NgModule({
---
providers: [
{
provide: NgbDateParserFormatter,
useFactory:() => { return new NgbDateMomentParserFormatter("DD-MM-YYYY") }
}
]
---
})
ध्यान रखें में कुछ और पृष्ठभूमि जानकारी की जाँच कर सकते - पल शून्य अनुक्रमित महीनों की अपेक्षा करता है। आपका कोड दिसम्बर के हर दिन विफल रहता है। – David
धन्यवाद @ डेविड, मैंने कोड तय किया। जब मैंने कोड पोस्ट किया, तो NgbDateStruct शून्य अनुक्रमित महीनों का भी उपयोग कर रहा था, लेकिन बाद में बदल गया। –
@ नेल्सन मैंने आपके दृष्टिकोण की कोशिश की। मैंने अपने दिनांक पिकर घटक के दिनांक प्रारूप को बदलने के लिए मेरे आवेदन के मूल मॉड्यूल में प्रदाताओं को जोड़ा है। यह काम नहीं कर रहा है। मेरी मदद करें। –