Ekspresi AngularJS: Array, Objek, $eval, String
โก Ringkasan Cerdas
Ekspresi AngularJS adalah fragmen kode yang ditempatkan di dalam tanda kurung kurawal ganda yang mengikat data langsung ke dalam template. Ekspresi ini mengevaluasi angka, string, objek, dan array, dan fungsi $eval melakukan evaluasi yang sama dari dalam controller.

Apa itu Ekspresi AngularJS?
Ekspresi adalah variabel yang ditulis di dalam kurung kurawal ganda. {{ }}. Fitur ini sangat umum digunakan dalam AngularJS, dan muncul di sepanjang tutorial sebelumnya dalam seri ini.
โ ๏ธ Pemberitahuan dukungan: AngularJS telah mencapai akhir hayat pada 31 Desember 2021 dan tidak menerima patch atau perbaikan keamanan lebih lanjut. Sintaks di bawah ini tetap akurat untuk memelihara aplikasi AngularJS 1.x yang sudah ada; proyek baru harus menggunakan versi modern. Kaku, di mana tanda kurung interpolasi masih ada tetapi ng-init ke $eval jangan.
Jelaskan Ekspresi AngularJS dengan sebuah contoh.
Ekspresi AngularJS ditulis di dalam kurung kurawal ganda, seperti pada {{expression}}.
sintaks: Contoh sederhana dari sebuah ekspresi adalah {{5 + 6}}.
Ekspresi AngularJS mengikat data ke HTML dengan cara yang sama seperti direktif ng-bind, dan AngularJS menampilkan data tepat di tempat ekspresi tersebut ditempatkan.
Dalam contoh ini, kita menunjukkan penjumlahan sederhana angka sebagai sebuah ekspresi.
<!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 Penjelasan:
- Direktif ng-app kosong, yang berarti tidak ada modul yang menyediakan controller. arahan, atau layanan ke halaman ini.
- Ekspresi sederhana menjumlahkan dua angka.
Keluaran:
Penjumlahan antara 9 dan 6 dilakukan dan hasilnya, 15, ditampilkan.
AngularJS Numbers
Ekspresi bekerja dengan angka. Contoh ini mengalikan dua variabel angka, margin ke profit, dan menampilkan produk tersebut.
<!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 Penjelasan:
- Direktif ng-init mendefinisikan variabel dan nilainya di dalam tampilan itu sendiri, mirip dengan variabel lokal di aplikasi mana pun. bahasa pemrograman. di sini
marginkeprofitdinyatakan dan ditetapkan. - Ekspresi tersebut kemudian mengalikan kedua variabel lokal tersebut.
Keluaran:
Perkalian antara 2 dan 200 dilakukan dan hasilnya, 400, ditampilkan.
String AngularJS
Ekspresi juga berfungsi dengan string. Contoh ini mendefinisikan firstName ke lastName dan menampilkan keduanya.
<!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 Penjelasan:
- Direktif ng-init mendefinisikan
firstNamedengan nilai โGuru"DanlastNamedengan nilai โ99โ. - Ekspresi
{{firstName}}ke{{lastName}}Baca variabel-variabel tersebut dan tampilkan di tampilan.
Keluaran:
Kedua nilai tersebut muncul di layar.
Objek AngularJS
Ekspresi bekerja dengan JavaNaskah objek, yang terdiri dari pasangan nama-nilai. Sintaks dari sebuah JavaObjek skrip terlihat seperti ini:
var car = {type: "Ford", model: "Explorer", color: "White"};
Contoh ini mendefinisikan sebuah person objek yang menyimpan dua pasangan kunci-nilai, firstName ke 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 Penjelasan:
- Direktif ng-init mendefinisikan objek tersebut.
persondengan pasangan kunci-nilaifirstNamediatur ke โGuru"DanlastNamediatur ke โ99โ. - Ekspresi
{{person.firstName}}ke{{person.lastName}}Bacalah anggota-anggota tersebut. Karena mereka termasuk dalam objek, notasi titik diperlukan untuk mendapatkan nilainya.
Keluaran:
Nilai-nilai firstName ke lastName muncul di layar.
Array AngularJS
Ekspresi bekerja dengan array. Contoh ini mendefinisikan array yang menyimpan nilai siswa dalam tiga mata pelajaran dan menampilkan setiap nilainya.
<!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 Penjelasan:
- Direktif ng-init mendefinisikan array
marksdengan tiga nilai yaitu 1, 15, dan 19. - Ekspresi berbentuk
marks[index]Baca setiap elemennya.
Keluaran:
Nilai yang ditentukan dalam larik akan ditampilkan.
Kemampuan dan Keterbatasan Ekspresi AngularJS
Kemampuan
- Ekspresi AngularJS menyerupai JavaEkspresi skrip memiliki banyak kekuatan dan fleksibilitas yang sama.
- Where JavaSkrip akan menimbulkan ReferenceError atau TypeError pada properti yang tidak terdefinisi, namun evaluasi AngularJS bersifat toleran dan menghasilkan undefined atau null.
- Filter dapat diterapkan di dalam ekspresi untuk memformat data sebelum ditampilkan.
- Operator ternary didukung, jadi
{{ isReady ? 'Yes' : 'No' }}adalah benar.
keterbatasan
- Perulangan dan penanganan pengecualian tidak dapat digunakan di dalam ekspresi AngularJS. Logika kondisional terbatas pada operator ternary;
ifPernyataan tidak tersedia. - Fungsi tidak dapat dideklarasikan dalam sebuah ekspresi, bahkan di dalam direktif ng-init sekalipun.
- Ekspresi reguler tidak dapat dibuat di dalam ekspresi. Ekspresi reguler adalah kombinasi simbol dan karakter yang digunakan untuk mencocokkan string, seperti
.*\.txt$, dan literal semacam itu ditolak. - Operator koma (
,) DanvoidOperator tidak diizinkan.
ng-bind vs Kurung Kurawal Ekspresi: Mana yang Harus Digunakan
Double Tanda kurung kurawal dan direktif ng-bind menghasilkan output yang sama, sehingga pilihan di antara keduanya tampak sembarangan. Padahal tidak. Keduanya berperilaku berbeda pada saat sebelum AngularJS selesai memuat, dan perbedaan itu terlihat oleh orang yang menggunakan halaman tersebut.
| Aspek | {{ expression }} | ng-bind |
|---|---|---|
| Ditulis dalam | Konten elemen | Atribut elemen |
| Sebelum AngularJS dimuat | Kawat gigi mentah muncul di layar. | Tidak ada yang ditampilkan |
| minat | Lebih tinggi โ nilainya sejajar | Lebih rendah โ nilai tersembunyi dalam atribut |
| Beberapa nilai per elemen | Ya | Tidak, hanya satu jilid saja |
| Pengikatan satu kali | Ya dengan {{::value}} |
Ya dengan ng-bind="::value" |
Kemunculan singkat tanda kurung kurawal mentah dikenal sebagai kilatan konten yang tidak diinterpolasi, dan itu terjadi karena browser merender markup sebelum AngularJS mengompilasinya. Gunakan ng-bind, atau tambahkan direktif ng-cloak, untuk konten yang terlihat di bagian atas halaman. Tanda kurung kurawal tetap menjadi pilihan yang lebih jelas dan mudah dibaca di tempat lain, terutama di mana beberapa nilai muncul di dalam satu elemen.
Perbedaan antara ekspresi dan $eval
The $eval Fungsi ini mengevaluasi ekspresi dari dalam controller. Ekspresi dievaluasi di view, sedangkan $eval dievaluasi dalam kode pengontrol.
Contoh ini menggunakan $eval untuk menambahkan dua angka dan menempatkan hasilnya pada objek cakupan sehingga tampilan dapat menampilkannya.
<!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 Penjelasan:
- Dua variabel cakupan,
akeb, masing-masing memiliki nilai 1. $scope.$evalmengevaluasi penjumlahan mereka dan menetapkan hasilnya ke variabel cakupan.value.- Tampilan kemudian menampilkan
value.
Keluaran:
Output tersebut menunjukkan ekspresi yang dievaluasi di dalam pengawas, dengan jumlah dari kedua variabel cakupan yang dikirim ke dan ditampilkan di tampilan.












