Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 830|Απάντηση: 0

[Γωνιώδης] Στοιχεία ελέγχου προσαρμοσμένης φόρμας Angular 18 Series (32) ControlValueAccessor

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2025-4-30 16:00:55 | | | |
απαιτήσεις: Στην καθημερινή ανάπτυξη front-end, οι φόρμες χρησιμοποιούνται συχνά για την προσθήκη και επεξεργασία δεδομένων μέσω φορμών. Μια παρουσία μιας ομάδας φόρμας μπορεί να παρακολουθεί ένα σύνολο παρουσιών FormControl και όταν δημιουργείται μια ομάδα φόρμας, κάθε στοιχείο ελέγχου σε αυτήν μπορεί να παρακολουθείται με το όνομά του. Πώς μπορώ να προσαρμόσω ένα στοιχείο ελέγχου φόρμας;

Ας ρίξουμε μια ματιά πρώτα στις αποδόσεις:



Τα βήματα είναι τα εξής:

  • Κληρονομεί τη διασύνδεση ControlValueAccessor
  • Εγγραφείτε σε έναν πάροχο NG_VALUE_ACCESSOR


Κληρονομεί τη διασύνδεση ControlValueAccessor

Η διεπαφή ControlValueAccessor ορίζει 4 μεθόδους, ως εξής:

  • writeValue: Οποιαδήποτε ενέργεια τιμής που καλεί ρητά το API FormControl θα καλέσει τη μέθοδο writeValue() του στοιχείου ελέγχου προσαρμοσμένης φόρμας και θα μεταβιβάσει τη νέα τιμή ως παράμετρο. Αυτό που κάνει είναι να ορίζει την τιμή του στοιχείου ελέγχου εγγενούς φόρμας. Η ροή δεδομένων προέρχεται από Γωνιακή φόρμα -> Εγγενής φόρμα (προσαρμοσμένο στοιχείο ελέγχου).
  • registerOnChange: καταχωρεί το συμβάν onChange, το οποίο καλείται κατά την προετοιμασία και είναι μια συνάρτηση ενεργοποίησης συμβάντος. Ποια είναι η χρήση αυτής της συνάρτησης ενεργοποίησης συμβάντων; Πρέπει πρώτα να αποθηκεύσουμε τη συνάρτηση ενεργοποίησης συμβάντος στο registerOnChange και να την καλέσουμε όταν είναι η κατάλληλη στιγμή (για παράδειγμα, όταν το στοιχείο ελέγχου λαμβάνει είσοδο από τον χρήστη και πρέπει να απαντήσει). Μπορείτε να κατανοήσετε αυτή τη λειτουργία ως "ένα API που χρησιμοποιείται από τον καλούντα για να ειδοποιεί το στοιχείο ελέγχου όταν υπάρχει αλλαγή στα δεδομένα της φόρμας στο στοιχείο ελέγχου", δηλαδή για να συγχρονίσει τις πληροφορίες στο στοιχείο ελέγχου. Η παράμετρος αυτής της συνάρτησης συμβάντος είναι η τιμή που πρόκειται να λάβει η Γωνιακή φόρμα. Ροή δεδομένων από Εγγενής φόρμα (προσαρμοσμένο στοιχείο ελέγχου) -> Γωνιακή φόρμα.
  • registerOnTouched: Καταχωρεί το συμβάν onTouched, το οποίο είναι μια συνάρτηση επανάκλησης που ενεργοποιείται όταν ένας χρήστης αλληλεπιδρά με ένα στοιχείο ελέγχου. Αυτή η συνάρτηση χρησιμοποιείται για να ειδοποιήσει το στοιχείο ελέγχου φόρμας ότι έχει ήδη αγγίξει για να ενημερώσει την εσωτερική κατάσταση του δεσμευμένου FormContorl. Ροή δεδομένων από Εγγενής φόρμα (προσαρμοσμένο στοιχείο ελέγχου) -> Γωνιακή φόρμα.
  • setDisabledState: Όταν η κατάσταση φόρμας αλλάζει σε ή από DISABLED, το API φόρμας καλεί τη μέθοδο setDisabledState() για να ενεργοποιήσει ή να απενεργοποιήσει το αντίστοιχο στοιχείο DOM. Η ροή δεδομένων προέρχεται από Γωνιακή φόρμα -> Εγγενής φόρμα (προσαρμοσμένο στοιχείο ελέγχου).


Η αλληλεπίδραση φαίνεται παρακάτω:



Στην πραγματικότητα, τα στοιχεία ελέγχου εγγενούς φόρμας έχουν επίσης διεπαφές παρόμοιες με το ControlValueAccessor, για παράδειγμα, όταν το Angular συναντά εγγενή στοιχεία ελέγχου εισόδου ή περιοχής κειμένου DOM σε πρότυπα στοιχείων, θα χρησιμοποιεί την εντολή DefaultValueAccessor.

Αξεσουάρ
Στοιχείο φόρμας
ΠροεπιλεγμένηΤιμήAccessor
είσοδος,περιοχή κειμένου
CheckboxControlValueAccessor
είσοδος[type=πλαίσιο ελέγχου]
ΑριθμόςValueAccessor
είσοδος[type=αριθμός]
RadioControlValueAccessor
είσοδος[type=ραδιόφωνο]
RangeValueAccessor
είσοδος[type=εύρος]
SelectControlValueAccessor
διαλέγω
SelectMultipleControlValueAccessor
Επιλέξτε [πολλαπλά]


Το παραπάνω είναι το στοιχείο ελέγχου Angular form που δημιούργησε το Angular για όλα τα εγγενή στοιχεία φόρμας DOM, δηλαδή το ενσωματωμένο ControlValueAccessor.

Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Εγγραφείτε σε έναν πάροχο NG_VALUE_ACCESSOR

Μετά την εφαρμογή της διεπαφής ControlValueAccessor, πρέπει επίσης να την καταχωρήσουμε ως NG_VALUE_ACCESSOR, έτσι ώστε το στοιχείο ελέγχου προσαρμοσμένης φόρμας να μπορεί να αναγνωριστεί και να ενσωματωθεί από το Angular, διαφορετικά θα λάβει ένα σφάλμα "RuntimeError: NG01203: No value accessor for form control name: 'xxx'".

Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

κωδικοποιώ

Σύμφωνα με τα βήματα, η πλήρης εργασία κωδικοποίησης, το αποτέλεσμα είναι η αρχική απόδοση, ο κώδικας είναι ο εξής.

Σελίδα HTML:

Κωδικός TS:
Αναφορά:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:Μια σύντομη εισαγωγή στο Reproducible Build
Επόμενος:Το μέγιστο μήκος varchar που δημιουργεί ο SQL Server για μη ομαδοποιημένα ευρετήρια
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com