Οδηγίες AngularJS: ng-init, ng-app, ng-model & ng-repeat
⚡ Έξυπνη Σύνοψη
Οι οδηγίες AngularJS επεκτείνουν την απλή HTML με νέα συμπεριφορά. Οι δείκτες ng-app, ng-init, ng-model και ng-repeat εκκινούν μια εφαρμογή, δημιουργούν δεδομένα σε τοπικό επίπεδο, συνδέουν στοιχεία ελέγχου φόρμας με το μοντέλο και κλωνοποιούν στοιχεία μία φορά ανά στοιχείο συλλογής.

Τι είναι η Οδηγία στο AngularJS;
A Οδηγία στο AngularJS είναι μια εντολή που δίνει στην HTML νέες λειτουργίες. Όταν το AngularJS επεξεργάζεται τον κώδικα HTML, πρώτα θα βρει τις οδηγίες στη σελίδα και στη συνέχεια θα αναλύσει τη σελίδα HTML ανάλογα. Ένα απλό παράδειγμα μιας οδηγίας AngularJS, την οποία έχουμε δει σε προηγούμενα κεφάλαια, είναι η οδηγία "ng-model". Αυτή η οδηγία χρησιμοποιείται για να συνδέσει το μοντέλο δεδομένων μας με την προβολή μας.
Σημείωση: Μπορείτε να έχετε βασικό κώδικα AngularJS σε μια σελίδα HTML με τις οδηγίες ng-init, ng-repeat και ng-model χωρίς να χρειάζεται να έχετε Ελεγκτές. Η λογική για αυτές τις οδηγίες βρίσκεται στο αρχείο AngularJS το οποίο παρέχεται από GoogleΟι ελεγκτές είναι οι δομές προγραμματισμού AngularJS επόμενου επιπέδου που επιτρέπουν την επιχειρηματική λογική, αλλά όπως αναφέρθηκε, για να είναι μια εφαρμογή AngularJS δεν είναι υποχρεωτικό να υπάρχει ελεγκτής.
Αλλά πώς καταλήγει ένα πρόγραμμα περιήγησης να εκτελεί ένα τέτοιο πρόγραμμα;
Πώς λειτουργούν οι οδηγίες AngularJS σε HTML
Όπως ορίσαμε στην εισαγωγή, μια οδηγία AngularJS είναι ένας τρόπος επέκτασης της λειτουργικότητας του HTMLΌταν φορτώνει η σελίδα, ο μεταγλωττιστής AngularJS περιηγείται στο DOM, αντιστοιχίζει κάθε στοιχείο με τις καταχωρημένες οδηγίες και επισυνάπτει τη συμπεριφορά που βρίσκει.
AngularJS Διαθέτει δεκάδες ενσωματωμένες οδηγίες, καθώς και όσες καταχωρίσετε μόνοι σας. Οι τέσσερις που εξηγούνται παρακάτω με λειτουργικά παραδείγματα, ng-app, ng-init, ng-model και ng-repeat, είναι αυτές που συναντούν πρώτα οι αρχάριοι. Πριν από αυτά τα παραδείγματα, σημειώστε τους τέσσερις τρόπους με τους οποίους μπορεί να γραφτεί μια οδηγία.
Ποιοι είναι οι τέσσερις τύποι οδηγιών AngularJS;
Μια οδηγία δεν είναι πάντα ένα χαρακτηριστικό. Ο μεταγλωττιστής AngularJS μπορεί να αντιστοιχίσει ένα με όνομα στοιχείου, χαρακτηριστικό, όνομα κλάσης ή σχόλιο, και κάθε οδηγία δηλώνει ποιες μορφές δέχεται μέσω του restrict ιδιότητα. Η προεπιλογή είναι EA, επομένως η σύνταξη στοιχείων και χαρακτηριστικών λειτουργούν και οι δύο εκτός αν ορίσετε διαφορετικά. Η τιμή έχει τη μεγαλύτερη σημασία όταν γράφετε τη δική σας οδηγία, επειδή ο μεταγλωττιστής αγνοεί οποιαδήποτε μορφή εξαιρεί η τιμή περιορισμού.
| περιορισμός τιμής | Αντιστοιχισμένο από | Παράδειγμα σήμανσης | Τυπική χρήση |
|---|---|---|---|
| E | Όνομα στοιχείου | Αυτοτελή μπλοκ που κατέχουν ένα πρότυπο | |
| A | Χαρακτηριστικό | Προσθήκη συμπεριφοράς σε ένα υπάρχον στοιχείο | |
| C | Ονομα τάξης | Παλαιότερη σήμανση που δεν μπορεί να δεχτεί νέα χαρακτηριστικά | |
| M | Σχόλιο | Σπάνιο, διατηρείται για συμβατότητα με παλαιότερες εκδόσεις |
💡 Συμβουλή: Προτιμώμενη σύνταξη στοιχείων και χαρακτηριστικών. Η επίσημη αναφορά στην οδηγία AngularJS αντιμετωπίζει τις φόρμες κλάσης και σχολίων ως legacy επιλογές. Όλα τα παρακάτω παραδείγματα χρησιμοποιούν σύνταξη χαρακτηριστικών.
ng-app στο AngularJS
Αυτό χρησιμοποιείται για την αρχικοποίηση μιας εφαρμογής AngularJS. Όταν αυτή η οδηγία είναι εγκατεστημένη σε μια σελίδα HTML, ουσιαστικά λέει στο AngularJS ότι αυτή η σελίδα HTML είναι μια εφαρμογή AngularJS.
Παράδειγμα ng-app
Το παρακάτω παράδειγμα δείχνει πώς να μετατρέψετε μια κανονική εφαρμογή HTML σε εφαρμογή AngularJS.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app=""> Tutorial Name : {{ "Angular" + "JS"}} </div> </body> </html>
⚠️ Προειδοποίηση: Η καταχώριση διατηρεί το πρωτότυπο chrset="UTF 8", ακριβώς όπως δημοσιεύτηκε. Το σωστό χαρακτηριστικό είναι charset="UTF-8".
Code Επεξήγηση:
- Η οδηγία "ng-app" προστίθεται στην ετικέτα div μας για να υποδείξει ότι αυτή η εφαρμογή είναι μια εφαρμογή AngularJS. Σημειώστε ότι η οδηγία ng-app μπορεί να εφαρμοστεί σε οποιαδήποτε ετικέτα, επομένως μπορεί επίσης να τοποθετηθεί στην ετικέτα body.
- Επειδή έχουμε ορίσει αυτήν την εφαρμογή ως εφαρμογή AngularJS, μπορούμε τώρα να χρησιμοποιήσουμε τη λειτουργικότητα του AngularJS. Στην περίπτωσή μας, χρησιμοποιούμε εκφράσεις για να απλώς συνενώσουμε 2 συμβολοσειρές.
Εάν ο κώδικας εκτελεστεί με επιτυχία, εμφανίζεται η παρακάτω έξοδος.
Παραγωγή:
Η έξοδος δείχνει ξεκάθαρα την έξοδο της έκφρασης, κάτι που κατέστη δυνατό μόνο επειδή ορίσαμε την εφαρμογή ως εφαρμογή AngularJS. Η επόμενη οδηγία παρέχει τα δεδομένα της.
ng-init στο AngularJS
Αυτό χρησιμοποιείται για την αρχικοποίηση δεδομένων εφαρμογής. Μερικές φορές μπορεί να χρειαστείτε κάποια τοπικά δεδομένα για την εφαρμογή σας και αυτό μπορεί να γίνει με την οδηγία ng-init.
Παράδειγμα ng-init
Σε αυτό το παράδειγμα, θα δημιουργήσουμε μια μεταβλητή που ονομάζεται "TutorialName" χρησιμοποιώντας την οδηγία ng-init και θα εμφανίσουμε την τιμή αυτής της μεταβλητής στη σελίδα.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="TutorialName='Angular JS'"> Tutorial Name : {{ TutorialName}} </div> </body> </html>
Code Επεξήγηση:
- Η οδηγία ng-init προστίθεται στην ετικέτα div μας για να ορίσει μια τοπική μεταβλητή που ονομάζεται "TutorialName" και η τιμή που δίνεται σε αυτήν είναι "AngularJS".
- Χρησιμοποιούμε εκφράσεις σε AngularJS για να εμφανίσουμε την έξοδο της μεταβλητής με όνομα "TutorialName", η οποία ορίστηκε στην οδηγία ng-init.
Εάν ο κώδικας εκτελεστεί με επιτυχία, εμφανίζεται η παρακάτω έξοδος.
Παραγωγή:
Στην έξοδο,
- Το αποτέλεσμα δείχνει καθαρά την έξοδο της έκφρασης που περιέχει τη συμβολοσειρά "AngularJS". Αυτό οφείλεται στην εκχώρηση της συμβολοσειράς "AngularJS" στη μεταβλητή "TutorialName" στην ενότητα ng-init.
Η επόμενη οδηγία στέλνει δεδομένα πίσω από την οθόνη στο μοντέλο.
ng-model στο AngularJS
Και τέλος, έχουμε την οδηγία ng-model, η οποία χρησιμοποιείται για να συνδέσει την τιμή ενός στοιχείου ελέγχου HTML με δεδομένα εφαρμογής.
Παράδειγμα ng-model
Σε αυτό το παράδειγμα,
- Θα δημιουργήσουμε 2 μεταβλητές που ονομάζονται «ποσότητα» και «τιμή». Αυτές οι μεταβλητές θα δεσμευτούν σε 2 στοιχεία ελέγχου εισαγωγής κειμένου.
- Στη συνέχεια θα εμφανίσουμε το συνολικό ποσό με βάση τον πολλαπλασιασμό των τιμών τιμής και ποσότητας.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="quantity=1;price=5"> People : <input type="number" ng-model="quantity"> Registration Price : <input type="number" ng-model="price"> Total : {{quantity * price}} </div> </body> </html>
Code Επεξήγηση:
- Η οδηγία ng-init προστίθεται στην ετικέτα div μας για να ορίσει 2 τοπικές μεταβλητές. το ένα ονομάζεται «ποσότητα» και το άλλο «τιμή».
- Τώρα χρησιμοποιούμε την οδηγία ng-model για να συνδέσουμε τα πλαίσια κειμένου "Άτομα" και "Τιμή εγγραφής" στις τοπικές μας μεταβλητές "ποσότητα" και "τιμή" αντίστοιχα.
- Τέλος, δείχνουμε το Σύνολο μέσω μιας έκφρασης, η οποία είναι ο πολλαπλασιασμός των μεταβλητών ποσότητας και τιμής.
Εάν ο κώδικας εκτελεστεί με επιτυχία, εμφανίζεται η παρακάτω έξοδος.
Παραγωγή:
- Η έξοδος δείχνει καθαρά τον πολλαπλασιασμό των τιμών για άτομα και τιμή εγγραφής.
Τώρα, αν αλλάξετε την τιμή των Άτομα και της Τιμής Εγγραφής στα πλαίσια κειμένου, το Σύνολο αλλάζει αυτόματα.
- Το παραπάνω αποτέλεσμα δείχνει απλώς τη δύναμη της σύνδεσης δεδομένων στο AngularJS, η οποία επιτυγχάνεται με τη χρήση του οδηγία ng-model.
Το τελευταίο από τα τέσσερα χειρίζεται πολλές τιμές ταυτόχρονα.
ng-repeat στο AngularJS
Αυτό χρησιμοποιείται για την επανάληψη ενός στοιχείου HTML. Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε το ng-repeat οδηγία.
Παράδειγμα ng-repeat
Σε αυτό το παράδειγμα,
- Θα έχουμε έναν πίνακα ονομάτων κεφαλαίων σε μια μεταβλητή πίνακα και
- στη συνέχεια χρησιμοποιήστε την οδηγία ng-repeat για να εμφανίσετε κάθε στοιχείο του πίνακα ως στοιχείο λίστας
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="chapters=['Controllers','Models','Filters']"> <ul> <li ng-repeat="names in chapters"> {{names}} </li> </ul> </div> </body> </html>
Code Επεξήγηση:
- Η οδηγία ng-init προστίθεται στην ετικέτα div μας για να ορίσει μια μεταβλητή που ονομάζεται "κεφάλαια", η οποία είναι μια μεταβλητή πίνακα που περιέχει 3 συμβολοσειρές.
- Το στοιχείο ng-repeat χρησιμοποιείται δηλώνοντας μια ενσωματωμένη μεταβλητή που ονομάζεται "names" και περνώντας από κάθε στοιχείο στον πίνακα κεφαλαίων.
- Τέλος, δείχνουμε την τιμή της τοπικής ενσωματωμένης μεταβλητής 'names'.
Εάν ο κώδικας εκτελεστεί με επιτυχία, εμφανίζεται η παρακάτω έξοδος.
Παραγωγή:
- Η παραπάνω έξοδος δείχνει απλώς ότι η οδηγία ng-repeat πήρε κάθε τιμή στον πίνακα που ονομάζεται "κεφάλαια" και δημιούργησε στοιχεία λίστας HTML για κάθε στοιχείο του πίνακα.
Αυτά τα τέσσερα καλύπτουν την εκκίνηση, τα δεδομένα, τη σύνδεση και την επανάληψη. Η παρακάτω λίστα δείχνει τι ακολουθεί.
Άλλες συχνά χρησιμοποιούμενες ενσωματωμένες οδηγίες AngularJS
Οι τέσσερις παραπάνω οδηγίες είναι το αρχικό σύνολο, όχι ολόκληρη η βιβλιοθήκη. Κάθε καταχώρηση παρακάτω είναι ένα χαρακτηριστικό που τοποθετείτε απευθείας στο στοιχείο που ελέγχει.
- ng-bind: Γράφει μια τιμή εμβέλειας στο κείμενο ενός στοιχείου χωρίς να εμφανίζει για λίγο ακατέργαστες αγκύλες κατά τη φόρτωση.
- ng-if: Αφαιρεί το στοιχείο από το DOM όταν η έκφρασή του είναι ψευδής και το αναδημιουργεί όταν είναι αληθής.
- ng-show και ng-hide: TogglΟρατότητα με CSS. Το στοιχείο παραμένει στο DOM, επομένως οι επαναλαμβανόμενες εναλλαγές κοστίζουν λιγότερο.
- ng-κλάση: Προσθέτει ή αφαιρεί κλάσεις CSS από μια έκφραση, επιτρέποντας στο στυλ να ακολουθεί το μοντέλο.
- ng-κλικ: Εκτελεί μια έκφραση ή μια συνάρτηση εμβέλειας όταν ο χρήστης κάνει κλικ στο στοιχείο.
- ελεγκτής ng: Συνδέει έναν ελεγκτή σε ένα μπλοκ σήμανσης μόλις η σελίδα ξεπεράσει το ng-init.
- ng-απενεργοποιημένο και ng-μόνο για ανάγνωση: Ορίστε το αντίστοιχο χαρακτηριστικό form όποτε η έκφρασή τους είναι αληθής.
Οι παρακάτω Συχνές Ερωτήσεις απαντούν στις ερωτήσεις που ακολουθούν συχνότερα αυτήν τη λίστα.









