ABA


"שאלה לתותחי ANGULARJS & COMPONENTS"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #22029 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 22029
תפתתפת לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 10.6.03
13866 הודעות, 3 פידבק, 5 נקודות
   14:00   31.07.17   
אל הפורום  
  שאלה לתותחי ANGULARJS & COMPONENTS  
 
   היי חברים

המערכת שכתבתי היא ב ANGULARJS.
בכל אופן החלטתי להיגמל מDIRECTIVES ולעבור ל COMPONENTS.
הבעיה היא כזו - כאשר משתנה מתעדכן לו ב FACTORY אף COMPONENT מלבד זה שיזם את העדכון לא יודע שהמשתנה התעדכן (עד היום השתמשתי ב WATCHERS ולכן גם לא היתה בעיה, הייתי מאזין למשתנה ומריץ CALLBACK כאשר הוא השתנה)
איך לעזאזל אני יכול לזהות מתי FACTORY VARIABLE השתנה מבלי להשתמש ב $scope.watch ?
די הפכתי את הגוגל ולא מצאתי תשובה לזה.
אשמח לתשובה! תודה!

קופון 15% הנחה ל myprotein
https://www.myprotein.co.il/referrals.list?applyCode=ORON-R4


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  נשמע כאילו יש לך בעיה כללית ב-design של המערכת Ben_d 31.07.17 19:42 1
     תודה על התגובה המהירה , אחדד את השאלה תפתתפת 31.07.17 22:34 2
         המממ Ben_d 01.08.17 00:12 3

       
Ben_d
חבר מתאריך 15.6.16
706 הודעות
   19:42   31.07.17   
אל הפורום  
  1. נשמע כאילו יש לך בעיה כללית ב-design של המערכת  
בתגובה להודעה מספר 0
 
   גם אם אתה לא משתמש בקומפוננטות, אין לך שום watch-ים על דברים ששמורים ב-factory אלא אם אתה מעתיק אותם ל-scope. בכללי, אתה לא אמור לגשת או לחשוף משנתים של factory, רק עם GET ו-SET. זה ימנע לך מלא בעיות בעתיד.

בכל אופן, הארכיטקטורה כשאתה עובד עם קומפוננטות שונה מה-MVC הקלאסי של אנגולר. אתה צריך להגדיר event-ים על כל קומפוננטה אם אתה רוצה שדברים אחרים יקרו בקומפוננטות אחרות. למשל, יש לך קומפוננטה של טופס ואז קומפוננטה של שדה שמופיעה מספר פעמים בזאת של הטופס. אתה יכול ליצור event שכאשר שדה משתנה, תרוץ לך פונקציה שנמצאת על הטופס שאותה העברת לשדה. משהו כזה:
<form>
<field onFieldChange="validate(f)" />
</form>
כאשר validate היא פונקציה בקומפוננטה של הטופס ו-onFieldChange הוא פרמטר מסוג פונקציה שמוגדר על השדה.

ממליץ לך לקרוא את המדריך שיש באתר שלהם, הוא מספיק טוב להבין את הקונספט:
https://docs.angularjs.org/guide/component


ומניסיון אישי, להכניס קומפוננטות באפליקציה קיימת סתם יוצר בלאגן בקוד והרבה יותר קשה לתחזק אותו לאחר מכן. אם אין לך כוונות לשדרג את האפ לאנגולר2, הייתי יורד מזה. ואם זאת אפליקציה חדשה, תשתמש כבר בריאקט.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
תפתתפת לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 10.6.03
13866 הודעות, 3 פידבק, 5 נקודות
   22:34   31.07.17   
אל הפורום  
  2. תודה על התגובה המהירה , אחדד את השאלה  
בתגובה להודעה מספר 1
 
   יש לי טבלה ויש לה PAGINATION .
ה PAGINATION אמור להיות מעל הטבלה ומתחת לה ולכן השתמשתי בקופוננטה של PAGINATION.
איך הבעיה?
כאשר לקחתי על עמוד 3 בPAGINATION הראשון - לא קרה דבר ב PAGINATION השני והוא עדין מסמן את עמוד 1.
לכן חשבתי שאשמור את הCURRENT PAGE ב FACTORY ואז רגע שהוא ישתנה ה PAGINATION השני יקבל את העדכון גם כן .

איך היית בונה את זה?
תודה!

@Ben_d@

קופון 15% הנחה ל myprotein
https://www.myprotein.co.il/referrals.list?applyCode=ORON-R4


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ben_d
חבר מתאריך 15.6.16
706 הודעות
   00:12   01.08.17   
אל הפורום  
  3. המממ  
בתגובה להודעה מספר 2
 
   עץ הקומפוננטות יהיה משהו כזה:

- table
-- pagination
-- table header
--- table header cell
-- table row
--- table row cell
-- pagination

(אפשר להמשיך ולשבור את זה לעוד קומפוננטות אבל אלו העיקריות)
ואז את מס' העמוד הנוכחי הייתי שומר ב-table וה-pagination היה נראה ככה:
<pagination current=table.currentPage ...>
ב-factory הייתי שומר את המידע שמוצג בטבלה עצמה ולא את ה-state של ה-UI (כמו ה-current page).


אני חייב להגיד אבל שהניסיון שלי עם קומפוננטות באנגלור לא גדול מידי - אפליקציה אחת וקטנה ולא יותר. בעבודה אף אחד לא רצה לשלב קומפוננטות בפרויקט הראשי שלנו, הרגשנו שזה לא באמת נחוץ וסוג של ארכיטקטורה שונה בתוך אחת קיימת.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net