हमने हाल ही में एक संस्करण से 1.3.0 से 1.5.0 तक, नवीनतम कोणीय संस्करण का उपयोग करने के लिए हमारे आवेदन को अपडेट किया है।कोणीय 1.3.0 और इनपुट [प्रकार = स्ट्रिंग]
https://github.com/angular/angular.js/issues/9218
हम pikaday दिनांक पिकर का उपयोग करने के लिए हमें सक्षम है कि एक कस्टम निर्देश था:
module.directive('pikaday', function() {
return {
require: 'ngModel',
link: function preLink(scope, element, attrs, controller) {
var $element = $(element),
momentFormat = 'DD/MM/YYYY',
year = new Date().getFullYear();
// init datepicker
var picker = new Pikaday(
{
field: document.getElementById(attrs.id),
firstDay: 1,
format: momentFormat,
minDate: new Date((year - 1) + '-01-01'),
maxDate: new Date((year + 1) + '-12-31'),
yearRange: [year - 1, year + 1],
onSelect: function (date) {
controller.$setViewValue(date);
},
defaultDate: scope.$eval(attrs.ngModel), // require: 'ngModel'
setDefaultDate: true
});
// format model values to view
controller.$formatters.unshift(function (modelValue) {
var formatted = (modelValue)
? moment(modelValue).format(momentFormat)
: modelValue;
return formatted;
});
// parse view values to model
controller.$parsers.unshift(function (viewValue) {
if (viewValue instanceof Date) {
return viewValue;
}
else {
return moment(viewValue, momentFormat).toDate();
}
});
}
};
})
यह ठीक काम करता था जाहिर है अब हम एक तोड़ने परिवर्तन 1.3.0 में पेश टक्कर , लेकिन अब इस नियंत्रण में एक फॉर्म को बाध्य करने के बाद, मेरे दायरे का मूल्य अचानक एक ऑब्जेक्ट से स्ट्रिंग में बदल दिया जाता है (बिना नियंत्रण के बातचीत के!) मजाकिया बात यह है कि ऐसा कभी भी फ़ॉर्मेटर या पार्सर्स के बिना होता है। तो ऐसा लगता है कि कोणीय सिर्फ स्कोप वैल्यू को बदलने का फैसला करता है क्योंकि इसे "टेक्स्ट" प्रकार का इनपुट बाध्य किया जा रहा है, भले ही इनपुट में मूल्य कभी छू न जाए।
मैं इनपुट [टाइप = टेक्स्ट] का उपयोग नहीं करना चाहता क्योंकि मैं नहीं चाहता कि ब्राउजर अपनी तारीखों को संभालने के लिए मजबूर करे।
यदि मेरे फॉर्मेटर/पार्सर को बुलाया जाएगा तो मुझे पता चलेगा कि इस के आसपास कैसे काम करना है, लेकिन यह मुझे परेशान कर रहा है।
मैं सिर्फ एक समय में एक तारीख को प्रदर्शित करने और pikaday प्लगइन अंडे देने के लिए क्लिक कर सकते हैं एक बटन उपयोगकर्ता हो सकता था, लेकिन मैं उसी रूप में रहने के लिए व्यवहार पसंद करेंगे ...
धन्यवाद मिको। मैंने इसे अपने पिकाडे निर्देश के लिंक फ़ंक्शन की शुरुआत में जोड़ा है। एक जादू की तरह काम करता है। यह एक दयालुता है कि हमें यह काम करने के लिए कोणीय पैच करना है। – Davy