אנגולר 1 - Direcrive להמרת תאריך
-
יש לי בעיה שכבר נדונה בעבר.
אני מקבל מהשרת תאריך בפורמט מסויים.
(2018-04-03T21:00:00.000Z)
אני רוצה לעשות בינדינג לתוך אלמנט input מסוג date.
הוא כמובן זורק שגיאה שהוא מצפה לקבל תאריך.
אני יכול לעשות המרה בסקופ. אבל רציתי להשתמש ב directive.
מצאתי משהו:app.directive('dateFormat', function () { return { require: 'ngModel', link: function (scope, element, attr, ngModelCtrl) { //Angular 1.3 insert a formater that force to set model to date object, otherwise throw exception. //Reset default angular formatters/parsers ngModelCtrl.$formatters.length = 0; ngModelCtrl.$parsers.length = 0; } };
וב HTML כך:
<input type="date" ng-model="chotamProfile.request_closedRoomExp" date-format/>
זה לא עובד. אין לי ניסיון ב Directive. מישהו יכול לעזור (הרעיון הוא שאני רוצה ליצור Durective על אלמנט input type=date). תודה.
-
ngModelCtrl.$formatters.unshift(function (a) { if (ngModelCtrl.$modelValue) { var date = moment(ngModelCtrl.$modelValue); if (!date._isValid) { return ''; } return date.format('DD/MM/YYYY'); } }); ngModelCtrl.$parsers.unshift(function (viewValue) { if (viewValue && moment(viewValue, 'DD/MM/YYYY')._isValid) { return moment(viewValue, 'DD/MM/YYYY').format(); } });
-
@dovid אמר באנגולר 1 - Direcrive להמרת תאריך:
משמה
לא מצאתי את האשכול הקודם
@zvizvi ניסיתי לעשות בלי להשתמש ב moment. בינתיים לא עובד.app.directive('dateFormat', function () { return { require: 'ngModel', link: function (scope, element, attr, ngModelCtrl) { ngModelCtrl.$formatters.unshift(function (a) { if (ngModelCtrl.$modelValue) { // var date = moment(ngModelCtrl.$modelValue); // if (!date._isValid) { // return ''; // } return new Date(ngModelCtrl.$modelValue); //return date.format('DD/MM/YYYY'); } }); ngModelCtrl.$parsers.unshift(function (viewValue) { return new Date(viewValue); /* if (viewValue && moment(viewValue, 'DD/MM/YYYY')._isValid) { return moment(viewValue, 'DD/MM/YYYY').format(); }*/ }); } };
מה לא טוב?
-
@מנצפך אמר באנגולר 1 - Direcrive להמרת תאריך:
@dovid אמר באנגולר 1 - Direcrive להמרת תאריך:
משמה
לא מצאתי את האשכול הקודם
@zvizvi ניסיתי לעשות בלי להשתמש ב moment. בינתיים לא עובד.אתה חייב לסנן החוצה ערכים שאינם תאריך, כי כשתעשה new date לערך שהוא לא תאריך - תקבל שגיאה.
-
@מנצפך אמר באנגולר 1 - Direcrive להמרת תאריך:
@dovid אמר באנגולר 1 - Direcrive להמרת תאריך:
משמה
לא מצאתי את האשכול הקודם
כשיהיה לי לך יותר כח אני יידבק ממך ויהיה לי כח לענות