AngularJS המרת נתונים ב Binding
-
יש לי ערך של מטבע, שאני שומר אותו ב DB בסקאלה של 1000.
כלומר, 1 ש"ח = 1000 יחידות.
אני רוצה להציג אותו ב input פשוט, אבל שב Input הוא יחולק ב 1000.
כלומר ש 0.1 ב input יומר ל 100 במשתנה.
צד אחד זה קל לעשות, פשוט מוסיפים ב "ng-value", חלוקה ל1000.
השאלה היא מה הדרך הנכונה שהמידע הזה יומר גם לצד השני עם הכפלה ב1000 (למשתנה)
(עשיתי עם ng-chnage, השאלה האם יש משהו יותר נכון) -
אני מחפש באינטרנט ומופתע שאין תשובה ממש "לפי הספר" פשוטה.
יש פה https://stackoverflow.com/q/13420693/1271037 ממש את אותה שאלה.
התשובה הקלילה ביותר היא זאת של @Joel-Richard שקיבלה למרבה הפלא רק שש הצבעות (לפני שבאתי כמובן...). -
@dovid אמר בAngularJS המרת נתונים ב Binding:
התשובה הקלילה ביותר היא זאת של @Joel-Richard שקיבלה למרבה הפלא רק שש הצבעות (לפני שבאתי כמובן...).
אשמח להסבר מה הוא עושה.
-
@dovid אמר בAngularJS המרת נתונים ב Binding:
@אהרן מה לא הבנת, תמקד אותי.
הוא הוסיף מתודות
get
ו-set
לסקופ, שמקבלות\כותבות את הערך שלprop
מי קורא ל-get
ו-set
?@אהרן אמר בAngularJS המרת נתונים ב Binding:
@dovid אמר בAngularJS המרת נתונים ב Binding:
@אהרן מה לא הבנת, תמקד אותי.
הוא הוסיף מתודות
get
ו-set
לסקופתקרא את הקוד שוב.
הוא לא הוסיף שום מתודה ל$scope. הוא הוסיף מאפיין.
מאפיין רגיל מציבים ישר לתוך האובייקט, אבל בדרך של defineProperty יוצרים מאפיין מיוחד עם מתודות גישה של get וset.
בעוד מאפיין רגיל זה ייצוג של מקום אמיתי בזיכרון ששם מאוחסנים נתונים, במאפיין עם מתודות גישה הנתון מתקבל ע"י מתודה מיוחדת שיכול להחזיר כל ערך בעולם, וגם הצבה אליו קוראת לפונקציה שיכולה לא לעשות כלום. -
@dovid אני ממש לא אהבתי את הדרך הזו.
זה יכול לבלבל אם אתה מנסה לגשת למשתנה הזה ממקום אחר, הוא יחזיר לך תוצאה לא רצויה.
כי ההיגיון אומר להתייחס תמיד בלוגיקה ובקוד לערך של 1/1000 , ורק בתצוגה להציג למשתמש בתבנית קריאה.זו דעתי.