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 וכן הלאה.(האמת שאפשר גם בלי לרשום אותו בקונטרולר ואז אם אני לא טועה הוא זמין בסקופ. אבל אני רגיל לשמור דברים רק בקונטרולר ולא בסקופ לכן רשמתי ככה.)
-
@dovid
הנה דמו:
http://plnkr.co/edit/t0drl7HpoJYuSOiz4GGq?p=preview
@zvizvi ככה לעשות? -
@מנצפך אמר ב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 -
@zvizvi תודה.
עשיתי גם כמה שינויים אחריך.
http://plnkr.co/edit/v3BoWJL9lYYCrmaUIskM?p=preview
אבל איך אני יכול להגיע לפרטים של הטופס מתוך ה DOM של ה דיירקטיב?
לדוגמא:
{{form.$dirty}} -
@מנצפך אמר בAngular 1 Directive:
{{form.$dirty}}
{{form.$dirty}} יעבוד. כי הוא רשום כbinding בדיירקטיב
-
@zvizvi כעת הוא לא עובד.
וגם זה לא יספיק לי.
אני צריך גישה לאינפוטים.
משהו כמו
{{form.firstName.$dirty}}
-
@מנצפך אמר בAngular 1 Directive:
@zvizvi כעת הוא לא עובד.
וגם זה לא יספיק לי.
אני צריך גישה לאינפוטים.
משהו כמו
{{form.firstName.$dirty}}
זה עובד. הסיבה שזה לא עבד לך היא כי לbinding לוקח זמן להגיע. בקונטרולר זה זמין ב$onInit.
ב link fucntion אין onInit אבל כשעטפתי את זה בsetTimeout זה קיים. -
@zvizvi מה עוזר לי timeOut?
אני רוצה שתהיה לי גישה בDOM.
משהו כזה:
{{form.txt.$dirty}}
-
@מנצפך אמר בAngular 1 Directive:
@zvizvi מה עוזר לי timeOut?
אני רוצה שתהיה לי גישה בDOM.
משהו כזה:
{{form.txt.$dirty}}
הוא יהיה זמין בDOM אבל לאחר עיכוב של שניות.
timeout מבצע פונקציה לאחר דיליי כלשהו. בDOM זה לא נצרך מכיון שהDOM באנגולר מתבצע כל הזמן. -
@zvizvi
אז למה אין לי גישה מה DOM? -
@מנצפך אמר בAngular 1 Directive:
@zvizvi
אז למה אין לי גישה מה DOM?בטח יש לך.
אתה לא רואה שזה מופיע פה?
http://plnkr.co/edit/c0WR7gC1fjWxEsWlxmt7?p=preview -
@zvizvi זה רק ל form
לא form.txt -
@מנצפך אמר בAngular 1 Directive:
@zvizvi זה רק ל form
לא form.txtform.txt לא הופיע מסיבה אחרת.
כדי שinput יופיע בform controller הוא צריך להכיל ng-model אחרת הוא לא יהיה שם. -
@zvizvi הו. סו"ס זה עובד.
תודה רבה.