Menggunakan `b:with`
Tag <b:with>
berfungsi untuk membuat variabel alternatif dari sebuah data atau bahkan dari variabel yang lain. Pada contoh di bawah, <data:name/>
akan menampilkan teks Taufik Nurrohman:
<b:with var='name' value='Taufik Nurrohman'>
<h1><data:name/></h1>
</b:with>
Dan pada contoh di bawah, variabel site
akan memiliki nilai yang sama dengan blog
. Di sini, tag <b:with>
hanya berfungsi sebagai alias variabel blog
:
<b:with var='site' value='data:blog'>
<b:if cond='data:site.url == data:blog.url'>
<p><mark>OK!</mark></p>
</b:if>
</b:with>
Nilai value
pada tag <b:with>
tidak harus berupa data primitif. Anda juga bisa menuliskan data berupa koleksi, misalnya seperti ini:
<b:with var='page' value='{
title: "Page Title",
description: "Page description.",
author: "Taufik Nurrohman",
link: "//example.com",
tags: ["Foo", "Bar", "Baz"]
}'>
<article>
<h2>
<a expr:href='data:page.link'>
<data:page.title/>
</a>
</h2>
<p><data:page.description/></p>
<p>
<strong>Tags:</strong>
<b:loop values='data:page.tags' var='tag'>
<data:tag/>
</b:loop>
</p>
</article>
</b:with>
Salah satu kekurangan fitur ini menurut Saya adalah bahwa setiap variabel hanya berlaku di dalam cakupan masing-masing tag <b:with>
karena sifat tag ini memang tidak sama dengan tag yang dapat berdiri sendiri seperti misalnya <b:class>
. Oleh karena itu, ketika kita ingin membuat beberapa nama variabel sekaligus dalam satu tema, maka kita perlu membuat lingkup tag <b:with>
berkali-kali seperti ini, yang mana akan membuat kode menjadi makin tidak nyaman untuk dibaca:
<b:with var='date' value=' … '>
<b:with var='language' value=' … '>
<b:with var='site' value=' … '>
<b:with var='url' value=' … '>
<body> … </body>
</b:with>
</b:with>
</b:with>
</b:with>
Solusi yang paling mudah dan sesuai prosedur tentunya adalah dengan mengubah data sebagai objek dan menyimpannya ke dalam satu nama variabel:
<b:with var='vars' value='{
date: … ,
language: … ,
site: … ,
url: … ,
}'>
<body> … </body>
</b:with>
Satu hal yang Saya harapkan untuk ke depannya jika Blogger memang benar masih tetap akan terus dikembangkan adalah adanya sebuah tag yang memiliki fungsi seperti tag <b:with>
namun dengan sintaks dan sifat yang sama dengan <b:class>
, dengan harapan bahwa kita akan dapat membuat nama variabel secara inline dimana cakupan tidak lagi didasarkan pada tag tersebut melainkan didasarkan pada tag induk:
<b:var name='foo' value='ABC'/>
<data:foo/> <!-- “ABC” -->
<div>
<b:var name='foo' value='DEF'/>
<b:var name='bar' value='123'/>
<b:var name='baz' value='["Foo", "Bar", "Baz"]'/>
<data:foo/> <!-- “DEF” -->
</div>
<data:foo/> <!-- “ABC” -->
Tags:
Blogger
Lanjutan
0 Response to "Menggunakan `b:with`"
Post a Comment