אנגולר 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). תודה.
-
יש לי בעיה שכבר נדונה בעבר.
אני מקבל מהשרת תאריך בפורמט מסויים.
(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). תודה.
-
@מנצפך אמר באנגולר 1 - Direcrive להמרת תאריך:
(2018-04-03T21:00:00.000Z)
לדעתי input date לא אמור להתנגד לפורמט כזה
(2018-04-03T21:00:00.000Z)או לפחות ככה:
new Date('2018-04-03T21:00:00.000Z') -
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(); } }); -
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(); }*/ }); } };מה לא טוב?
-
@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 להמרת תאריך:
משמה
לא מצאתי את האשכול הקודם
@zvizvi ניסיתי לעשות בלי להשתמש ב moment. בינתיים לא עובד.אתה חייב לסנן החוצה ערכים שאינם תאריך, כי כשתעשה new date לערך שהוא לא תאריך - תקבל שגיאה.
-
@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 להמרת תאריך:
משמה
לא מצאתי את האשכול הקודם
כשיהיה לי לך יותר כח אני יידבק ממך ויהיה לי כח לענות

שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות