@dovid אמר באנגולר: ריקון אוטו' של modal כתלות במשתנה אחר:
הייתי שמח לקבל תמונה רחבה יותר
מצטער, באמת שנסיתי!
נניח יש אלמנטים ברצף, לא ניתנים לעריכה (type=text!) שמכילים כל אחד שם פרטי ושם משפחה.
אני רוצה להוסיף שבאלמנט שחסר שם המשפחה, קליק יפתח תחתיו אינפוט להשלמת שם המשפחה.
אז עשיתי כך (ממשיך עם הדוגמא מהאשכול הקודם):
<div ng-repeat="section in allObj">
<button ng-repeat="fullName in section" ng-click="changeName(fullName,section)">
{{fullName.name}}
**<input ng-if="addLastNmaeInput == fullName" ng-model="addLastNmaeText">{{addLastNmaeText}}</input>**
</button>
</div>
בפונקציה של הקליק הוספתי:
$scope.changeName = function(element, parent) {
element.name = 'aharon';
**$scope.addLastNmaeInput = element;**
};
(המוקף בכוכבים זה התוספת)
עשיתי א"ז בצורה כזו כי במהלך אחד אני מרויח כמה דברים חשובים
- רק אינפוט אחד יהיה פתוח, וכשנפתח אחר הוא מחליף את הקודם (אין טעם לשכפל את שם המשפחה לאלמנטים אחרים).
- רפרנס שמור לאלמנט במערך בשביל שאוכל לערוך אותו (במקרה זה, להוסיף אליו את שם המשפחה).
- מציג\מסתיר (או יוצר\הורג) את אלמנט האינפוט שמתווסף.
כעת, מקש אנטר או אסקייפ אמורים לסגור את האינפוט (למחוק אותו מהDOM)
כשהאינפוט יסגר, משתנים addLastNmaeInput addLastNmaeInput אמורים להתאפס.
אני יכול פשוט להוסיף א"ז לאירוע המקש
אבל שיכור מהאנגולר הייתי רוצה טיפול מלא בתלויות, כולל משתנים קשורים ולא רק של ה-DOM.
אגב, את הmodel אני צריך בשביל ששם המשפחה יכתב במקביל גם בתפריט עריכה עשיר יותר, במידה וירצו להמשיך ולערוך שם, אני אבל חושב שזה סתם נוח בשביל ללכוד את תוכן האינפוט, לא כן?
שמעתי שפונקציה וואצ' יקר במשאבים.
אפשרי? נכון? כדאי?