שינוי רכיב אחד לאחר שינוי ברכיב אחר - vue
-
לדוגמא כאן.
כשעושים שינוי ב-int_to_filter הוא מרענן את הנתונים כיון שהוא מוזכר בתוך הפונקצייה filtered_databusiness.הנקודה, שאני צריך שגם כאשר יבוצע שינוי ב=int2_to_filter הוא יהיה טריגר לרענון של הנתונים (לא רק של התצוגה אלא גם של כל הנתונים המחושבים).
ניסיתי לעבוד עם אופציות מובנות של הVUE כמו לדוגמא להכניס פונקציה בנקודת זמן updated, אבל הוא נכנס ללולאה אין סופית של עדכונים.
ראיתי כאן, אבל זה לא עוזר לי. אולי כיון ששם הוא רק מרענן את התצוגה ואני צריך סינון של כל הנתונים.
אשמח לרעיונות נוספים....
תודה
-
@chagold כדאי לקרוא תשובה זו: https://stackoverflow.com/a/51699388
הוא מסביר את מנגנון זיהוי התלויות של נתונים מחושבים.לכאורה יש 2 פתרונות,
- או לגרום ל-
int2_to_filter
להיות מזוהה כתלויה על ידי גישה אליו מתוך פונקצייתfiltered_databusiness
. - או להשתמש ב-watch
DISCLAIMER: אני לא מכיר את Vue
- או לגרום ל-
-
@yossiz אמר בשינוי רכיב אחד לאחר שינוי ברכיב אחר - vue:
@chagold כדאי לקרוא תשובה זו: https://stackoverflow.com/a/51699388
הוא מסביר את מנגנון זיהוי התלויות של נתונים מחושבים.לכאורה יש 2 פתרונות,
- או לגרום ל-
int2_to_filter
להיות מזוהה כתלויה על ידי גישה אליו מתוך פונקצייתfiltered_databusiness
.
יש כבר גישה משם. ואעפ"כ משום מה הוא בכלל לא ניגש לfiltered_databusiness כשיש ריענון של int2_to_filter.
- או להשתמש ב-watch
לא הבנתי איך מממשים אותו.
לא אכפת לי ג"כ פתרון מלוכלך שupdate של מתודה מסוימת שיהיה טריגר לריענון. (מה שכתבתי מקודם שיצר לולאה אינסופית זה כשהיה ריענון של כל הקומפוננטה)
- או לגרום ל-
-
@chagold אמר בשינוי רכיב אחד לאחר שינוי ברכיב אחר - vue:
יש כבר גישה משם. ואעפ"כ משום מה הוא בכלל לא ניגש לfiltered_databusiness כשיש ריענון של int2_to_filter.
גם לפי התיעוד וגם מניסויים שלי זה אמור לרענן את השדות המחושבים בכל פעם שיש שינוי למאפיין שאתה ניגש אליו בפונקציה של החישוב. (תוודא שאתה ניגש אליו בכל פעם שהפונקציה נקראת, ולא רק בתנאי מסויים, וגם ש-
int2_to_filter
הוא בדאטה ולא משתנה חיצוני)לא הבנתי איך מממשים אותו.
פשוט מוסיפים עוד קטע לדאטה:
watch: { int2_to_filter: function (oldValue, newValue) { this.items = getItems(); } }
לא אכפת לי ג"כ פתרון מלוכלך
זו סיטואציה נפוצה ואין צורך למשהו מלוכלך כאשר יש תמיכה מפורשת בסיטואציות כאלו