AngularJS kifejezések: Tömb, Objektumok, $eval, Sztringek
⚡ Okos összefoglaló
Az AngularJS kifejezések dupla zárójelek közé helyezett kódrészletek, amelyek közvetlenül egy sablonhoz kötik az adatokat. Számokat, karakterláncokat, objektumokat és tömböket értékelnek ki, és az $eval függvény ugyanezt a kiértékelést hajtja végre egy vezérlőn belülről.

Mik azok az AngularJS kifejezések?
A kifejezések dupla zárójelek közé írt változók {{ }}Nagyon gyakran használják őket az AngularJS-en belül, és a sorozat korábbi oktatóanyagaiban is megjelennek.
⚠️ Támogatási közlemény: AngularJS elérve élettartam vége 2021. december 31-én és nem kap további javításokat vagy biztonsági javításokat. Az alábbi szintaxis továbbra is pontos a meglévő AngularJS 1.x alkalmazások karbantartása érdekében; az új projekteknek modern szögletes, ahol az interpolációs zárójelek még mindig léteznek, de ng-init és a $eval nem.
Magyarázd el az AngularJS kifejezéseket egy példával
Az AngularJS kifejezéseket dupla zárójelek közé írjuk, mint például {{expression}}.
Syntax: egy egyszerű példa a kifejezésre {{5 + 6}}.
Az AngularJS kifejezések ugyanúgy kötik az adatokat a HTML-hez, mint az ng-bind direktíva, és az AngularJS pontosan oda jeleníti meg az adatokat, ahol a kifejezés található.
Ebben a példában számok egyszerű összeadását mutatjuk be kifejezésként.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.min.js"></script> <h1>Guru99 Global Event</h1> <div ng-app=""> Addition : {{6+9}} </div> </body> </html>
Code Magyarázat:
- Az ng-app direktíva üres, ami azt jelenti, hogy egyetlen modul sem lát el vezérlőket, irányelvek, vagy szolgáltatásokat ehhez az oldalhoz.
- Egy egyszerű kifejezés két számot összead.
output:
Megtörténik a 9 és a 6 összeadása, és az eredmény, a 15 jelenik meg.
AngularJS Numbers
A kifejezések számokkal dolgoznak. Ez a példa két számváltozót szoroz össze, margin és a profit, és megjeleníti a terméket.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.min.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="" ng-init="margin=2;profit=200"> Total profit margin {{margin*profit}} </div> </body> </html>
Code Magyarázat:
- Az ng-init direktíva magában a nézetben definiálja a változókat és azok értékeit, hasonlóan a lokális változókhoz bármely más nézetben. programozási nyelv. Itt
marginés aprofitdeklarálják és kiosztják. - A kifejezés ezután megszorozza ezt a két lokális változót.
output:
Megtörténik a 2 és 200 szorzása, és a szorzat, a 400 jelenik meg.
AngularJS húrok
A kifejezések karakterláncokkal is működnek. Ez a példa a következőt definiálja: firstName és a lastName és mindkettőt megjeleníti.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.min.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="" ng-init="firstName='Guru';lastName='99'"> First Name : {{firstName}}<br> Last Name : {{lastName}} </div> </body> </html>
Code Magyarázat:
- Az ng-init direktíva meghatározza
firstNameaz „értékkel”Guru"ÉslastName„99” értékkel. - A kifejezések
{{firstName}}és a{{lastName}}Olvasd be ezeket a változókat, és jelenítsd meg őket a nézetben.
output:
Mindkét érték megjelenik a képernyőn.
AngularJS objektumok
A kifejezések működnek a következőkkel: JavaForgatókönyv objektumok, amelyek név-érték párokból állnak. A szintaxisa egy JavaA szkript objektum így néz ki:
var car = {type: "Ford", model: "Explorer", color: "White"};
Ez a példa egy person két kulcs-érték párt tartalmazó objektum, firstName és a lastName.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.min.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="" ng-init="person={firstName:'Guru',lastName:'99'}"> First Name : {{person.firstName}}<br> Last Name : {{person.lastName}} </div> </body> </html>
Code Magyarázat:
- Az ng-init direktíva definiálja az objektumot
persona kulcs-érték párokkalfirstNameállítva "Guru"ÉslastName„99”-re állítva. - A kifejezések
{{person.firstName}}és a{{person.lastName}}Olvasd be ezeket a tagokat. Mivel az objektumhoz tartoznak, pontjelölés szükséges az értékük eléréséhez.
output:
Az értékek firstName és a lastName jelennek meg a képernyőn.
AngularJS tömbök
A kifejezések tömbökkel működnek. Ez a példa egy olyan tömböt definiál, amely egy diák három tantárgyból szerzett jegyeit tartalmazza, és megjeleníti az egyes értékeket.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.min.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="" ng-init="marks=[1,15,19]"> Student Marks<br> Subject1 : {{marks[0]}}<br> Subject2 : {{marks[1]}}<br> Subject3 : {{marks[2]}} </div> </body> </html>
Code Magyarázat:
- Az ng-init direktíva definiálja a tömböt
marksa három értékkel: 1, 15 és 19. - A forma kifejezései
marks[index]olvasd el az egyes elemeket.
output:
A tömbben definiált jelek megjelennek.
AngularJS Expression képességek és korlátok
Képességek
- Az AngularJS kifejezések hasonlóak JavaA szkriptkifejezések és a nagyrészt ugyanazzal a teljesítménnyel és rugalmassággal rendelkeznek.
- Hol JavaA szkript ReferenceError vagy TypeError hibát generál egy undefined tulajdonságon, az AngularJS kiértékelése megbocsátó, és undefined vagy null értéket ad vissza.
- A szűrők egy kifejezésen belül alkalmazhatók az adatok formázására, mielőtt azok megjelennének.
- A ternáris operátor támogatott, tehát
{{ isReady ? 'Yes' : 'No' }}érvényes.
korlátozások
- Ciklusok és kivételkezelés nem használhatók AngularJS kifejezéseken belül. A feltételes logika a ternáris operátorra korlátozódik;
ifkimutatások nem állnak rendelkezésre. - A függvényeket nem lehet kifejezésben deklarálni, még egy ng-init direktíván belül sem.
- Reguláris kifejezések nem hozhatók létre kifejezéseken belül. A reguláris kifejezés szimbólumok és karakterek kombinációja, amelyek karakterláncok egyeztetésére szolgálnak, például
.*\.txt$, és az ilyen literálokat elutasítjuk. - A vessző operátor (
,), És avoidkezelők nem engedélyezettek.
ng-bind vs. Expression Braces: Melyiket használjuk?
Double A zárójelek és az ng-bind direktíva ugyanazt a renderelt kimenetet eredményezi, így a köztük lévő választás önkényesnek tűnik. Nem az. A kettő másképp viselkedik az AngularJS betöltésének befejezése előtti pillanatban, és ez a különbség látható az oldalt használó személy számára.
| Aspect | {{ expression }} | ng-bind |
|---|---|---|
| Írtam be | Elem tartalma | Egy elem attribútuma |
| Az AngularJS betöltése előtt | Nyers fogszabályozók villannak fel a képernyőn | Semmi sem látható |
| olvashatóság | Magasabb – az érték egy vonalban van | Alsó – az érték egy attribútumban rejtve van |
| Több érték elemenként | Igen | Nem, csak egy kötés |
| Egyszeri kötés | Igen {{::value}} |
Igen ng-bind="::value" |
A nyers zárójelek rövid megjelenését interpolálatlan tartalom felvillanásának nevezik, és azért történik, mert a böngésző a jelölőkódot megjeleníti, mielőtt az AngularJS lefordítaná azt. Használj ng-bind utasítást, vagy add hozzá az ng-cloak direktívát a hajtás felett látható tartalomhoz. A zárójelek továbbra is a tisztább és olvashatóbb választás mindenhol máshol, különösen ott, ahol több érték jelenik meg egy elemen belül.
Különbség a kifejezés és a $eval között
Az $eval A függvény a vezérlőn belüli kifejezéseket értékeli ki. A kifejezések a nézetben értékelődnek ki, míg $eval vezérlőkódban értékelődik ki.
Ez a példa a következőt használja: $eval két szám összeadásához és az eredmény elhelyezéséhez a scope objektumon, hogy a nézet megjeleníthesse.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.min.js"></script> <div ng-app="sampleApp" ng-controller="AngularController"> <h1>Guru99 Global Event</h1> {{value}} </div> <script> var sampleApp = angular.module('sampleApp', []); sampleApp.controller('AngularController', function($scope) { $scope.a = 1; $scope.b = 1; $scope.value = $scope.$eval('a+b'); }); </script> </body> </html>
Code Magyarázat:
- Két hatókörű változó,
aés ab, mindegyik 1 értéket visel. $scope.$evalkiértékeli az összeadásukat, és az eredményt hozzárendeli a hatókör változóhozvalue.- A nézet ezután megjelenik
value.
output:
A kimenet a kiértékelt kifejezést mutatja a ellenőr, a két hatókör-változó összegével, amely elküldésre kerül a nézetnek és megjelenik ott.












