Template Dinamis
Template dinamis Email EngageLab mendukung bahasa template Handlebars untuk menampilkan konten personalisasi yang dikirim melalui API.
Penggantian Variabel
Penggantian Dasar
Contoh Template
<p>Halo {{firstname}}</p>
Data Uji
{ "firstName": "Engagelab" }
Hasil Rendering
<p>Halo Engagelab</p>
Penggantian Objek Bersarang
Contoh Template
<p>Halo {{user.profile.firstName}}</p>
Data Uji
{
"user": {
"profile": {
"firstName": "Engagelab"
}
}
}
Hasil Rendering
<p>Halo Engagelab</p>
formatDate
Fungsi formatDate menerima timestamp Unix atau waktu dalam format ISO8601 dan mengubahnya ke format yang Anda tentukan menggunakan penanda pada tabel berikut.
Mengambil waktu UTC 1987-09-20T20:55:00.000Z sebagai contoh, hasil konversi dan tampilannya ditunjukkan pada tabel di bawah:
| Placeholder | Hasil |
|---|---|
| YYYY | 1987 |
| YY | 87 |
| MMMM | September |
| MMM | Sep |
| MM | 09 |
| M | 9 |
| DD | 20 |
| D | 20 |
| dddd | Minggu |
| ddd | Min |
| hh | 08 |
| h | 8 |
| HH | 20 |
| H | 20 |
| mm | 55 |
| m | 55 |
| ss | 00 |
| s | 0 |
| A | PM |
| ZZ | +0000 |
| Z | +00:00 |
Contoh Template
<p>{{formatDate timeStamp dateFormat}}</p>
<!-- Contoh offset zona waktu -->
<p>{{formatDate timeStamp dateFormat timezoneOffset}}</p>
Data Uji
{
"timeStamp": "1987-09-20T12:55:00.000Z",
"dateFormat": "YYYY-MM-DD HH:mm:ss A",
"timezoneOffset": "+0800"
}
Hasil Rendering
<!-- Hasil Rendering (Template Satu) -->
<p>1987-09-20 12:55:00 PM</p>
<!-- Hasil Rendering (Template Dua) -->
<p>1987-09-20 20:55:00 PM</p>
Insert
Contoh Template
<p>Terima kasih telah menghubungi kami mengenai {{insert businessName "bisnis Anda"}}.</p>
Data Uji
// Data Uji Satu
{}
// Data Uji Dua
{
"businessName": "Engagelab"
}
Hasil Rendering
<!-- Hasil Rendering Satu -->
<p>Halo Ben! Terima kasih telah menghubungi kami mengenai bisnis Anda.</p>
<!-- Hasil Rendering Dua -->
<p>Halo Customer! Terima kasih telah menghubungi kami mengenai Engagelab.</p>
Pernyataan Kondisional
If, Else, Else If
Contoh Template
{{#if user.profile.isTeacher}}
<p>Halo, Guru {{user.profile.firstName}}</p>
{{else if user.profile.isStudent}}
<p>Halo, Siswa {{user.profile.firstName}}</p>
{{else}}
<p>Halo, {{user.profile.firstName}}! Selamat datang.</p>
{{/if}}
Data Uji
// Data Uji Satu
{
"user": {
"profile": {
"firstName": "Zhang San",
"isTeacher": true
}
}
}
// Data Uji Dua
{
"user": {
"profile": {
"firstName": "Li Si",
"isStudent": true
}
}
}
// Data Uji Tiga
{
"user": {
"profile": {
"firstName": "Wang Wu"
}
}
}
Hasil Rendering
<!-- Hasil Rendering (Data Uji Satu) -->
<p>Halo, Guru Zhang San</p>
<!-- Hasil Rendering (Data Uji Dua) -->
<p>Halo, Siswa Li Si</p>
<!-- Hasil Rendering (Data Uji Tiga) -->
<p>Halo, Wang Wu! Selamat datang.</p>
Unless
Contoh Template
{{#unless license}}
<p class="warning">PERINGATAN: Entri ini tidak memiliki lisensi!</p>
{{/unless}}
Data Uji
{}
Hasil Rendering
<!-- Hasil Rendering -->
<p class="warning">PERINGATAN: Entri ini tidak memiliki lisensi!</p>
Operator Perbandingan
Operator perbandingan mendukung dua mode penggunaan: dasar dan dengan else.
Sintaks yang didukung ditunjukkan pada tabel berikut:
| Ekspresi | Penjelasan |
|---|---|
| greaterThan | > |
| lessThan | < |
| equals | = |
| greaterThanOrEquals | >= |
| lessThanOrEquals | <= |
| notEquals | != |
Dasar
Contoh Template
<p>
{{#greaterThan truckWeight limitWeight}}
Truk tidak diizinkan lewat.
{{/greaterThan}}
</p>
Data Uji
{
"truckWeight": 6,
"limitWeight": 5
}
Hasil Rendering
<p>
Truk tidak diizinkan lewat.
</p>
Dengan else
Contoh Template
<p>
{{#greaterThan truckWeight limitWeight}}
Truk tidak diizinkan lewat.
{{else}}
Truk diizinkan lewat.
{{/greaterThan}}
</p>
Data Uji
{
"truckWeight": 5,
"limitWeight": 5
}
Hasil Rendering
<p>
Truk diizinkan lewat.
</p>
in, notIn
Seperti operator perbandingan, keduanya juga mendukung dua mode penggunaan: dasar dan dengan else.
Contoh Template
<p>
{{#in fruit favoriteFruits}}
Suka makan.
{{else}}
Tidak suka makan.
{{/in}}
</p>
Data Uji
// Data Uji Satu
{
"fruit": "Apel",
"favoriteFruits": [
"Apel",
"Pisang",
"Jeruk"
]
}
// Data Uji Dua
{
"fruit": "Anggur",
"favoriteFruits": [
"Apel",
"Pisang",
"Jeruk"
]
}
Hasil Rendering
<!-- Hasil Rendering Satu -->
<p>
Suka makan.
</p>
<!-- Hasil Rendering Dua -->
<p>
Tidak suka makan.
</p>
Iterasi
Each
Contoh Template
<ul>
{{#each fruits}}
<li>{{this}}</li>
{{/each}}
</ul>
Data Uji
{
"fruits": [
"Apel",
"Pisang",
"Jeruk"
]
}
Hasil Rendering
<ul>
<li>Apel</li>
<li>Pisang</li>
<li>Jeruk</li>
</ul>
Penjelasan Tambahan
Saat menggunakan each untuk iterasi array, Anda dapat menggunakan {{@index}} untuk mereferensikan indeks loop saat ini.
{{#each array}} {{@index}}: {{this}} {{/each}}
Untuk iterasi objek, gunakan {{@key}} untuk mereferensikan nama key saat ini.
{{#each object}} {{@key}}: {{this}} {{/each}}
With
Contoh Template
{{#with user.profile}}
<p>Halo {{firstName}}</p>
{{/with}}
Data Uji
{
"user": {
"profile": {
"firstName": "Engagelab"
}
}
}
Hasil Rendering
<p>Halo Engagelab</p>










