מה הדרך להחליף $watch בטריגר
-
השתמשתי בפונקצית האזנה $watch באנגולר
ואז קראתי שהיא יקרה מאוד בביצועים
וגם הפריע לי שאני לא יכול לשלוט על סדר המשימותאז החלטתי להחליף את האזנה בפונקציה משלי, כלומר שעדכון המשתנה יהיה באמצעות פונקציה
set
שכתבתי.אבל לא מצאתי פתרון לצורך להאזין לשינוים שיכנסו למשתנה
model
באמצעות שינוי האינפוט - עם לקבל את הערך הישן והחדש.עד ש @dovid מצא את הפתרון המבריק הזה
<select ng-change="updateValue(user, '{{user.id}}')" ng-model="user.id" ng-options="user.id as user.name for user in users"> </select>
מה שבתוך {{}} נותן את הערך הישן, כיון שלפני שאנגולר מריץ את הקוד הוא ממיר את כל ה-{{}}.