Angular 1 Directive
-
איך אני יכול להתייחס מתוך דיירקטיב, ל form שמכיל אותו?
העניין הוא כזה, אני עושה בתוך הדיירקטיב תנאי מסוג כזה:
cardClearingForm.cardNum.$dirty
כשה cardClearingForm הוא הפורם שמכיל את הדיירקטיב.
וה cardNum הוא שם השדה בתוך הדיירקטיב.
הדיירקטיב הוא לא form בפני עצמו, כי אני צריך להשתמש באפשרות required שתחול גם על חלקים מחוץ לדיירקטיב.
מקווה שהשאלה הובנה. -
@מנצפך אמר בAngular 1 Directive:
איך אני יכול להתייחס מתוך דיירקטיב, ל form שמכיל אותו?
העניין הוא כזה, אני עושה בתוך הדיירקטיב תנאי מסוג כזה:
cardClearingForm.cardNum.$dirty
כשה cardClearingForm הוא הפורם שמכיל את הדיירקטיב.
וה cardNum הוא שם השדה בתוך הדיירקטיב.
הדיירקטיב הוא לא form בפני עצמו, כי אני צריך להשתמש באפשרות required שתחול גם על חלקים מחוץ לדיירקטיב.
מקווה שהשאלה הובנה.פשוט מאוד. את הname של הform תעשה:
$ctrl.cardClearingForm
זה יגרום לform להיות זמין בקונטרולר.
מפה הדרך קצרה, להעביר את הform כbinding או לאתר אותו בסקופ ההורה עם $parent וכן הלאה.(האמת שאפשר גם בלי לרשום אותו בקונטרולר ואז אם אני לא טועה הוא זמין בסקופ. אבל אני רגיל לשמור דברים רק בקונטרולר ולא בסקופ לכן רשמתי ככה.)
-
@מנצפך אמר בAngular 1 Directive:
@dovid
הנה דמו:
http://plnkr.co/edit/t0drl7HpoJYuSOiz4GGq?p=preview
@zvizvi ככה לעשות?עשיתי לך 2 שינויים
בindex.html שורה 15 וב app.js שורה 17
http://plnkr.co/edit/4QoiwyiozBKcouDH3ju3?p=preview -
@מנצפך אמר בAngular 1 Directive:
@zvizvi כעת הוא לא עובד.
וגם זה לא יספיק לי.
אני צריך גישה לאינפוטים.
משהו כמו
{{form.firstName.$dirty}}
זה עובד. הסיבה שזה לא עבד לך היא כי לbinding לוקח זמן להגיע. בקונטרולר זה זמין ב$onInit.
ב link fucntion אין onInit אבל כשעטפתי את זה בsetTimeout זה קיים. -
@מנצפך אמר בAngular 1 Directive:
@zvizvi מה עוזר לי timeOut?
אני רוצה שתהיה לי גישה בDOM.
משהו כזה:
{{form.txt.$dirty}}
הוא יהיה זמין בDOM אבל לאחר עיכוב של שניות.
timeout מבצע פונקציה לאחר דיליי כלשהו. בDOM זה לא נצרך מכיון שהDOM באנגולר מתבצע כל הזמן. -
@מנצפך אמר בAngular 1 Directive:
@zvizvi
אז למה אין לי גישה מה DOM?בטח יש לך.
אתה לא רואה שזה מופיע פה?
http://plnkr.co/edit/c0WR7gC1fjWxEsWlxmt7?p=preview -
@מנצפך אמר בAngular 1 Directive:
@zvizvi זה רק ל form
לא form.txtform.txt לא הופיע מסיבה אחרת.
כדי שinput יופיע בform controller הוא צריך להכיל ng-model אחרת הוא לא יהיה שם.