Tag <b:with>
berfungsi untuk menciptakan variabel alternatif dari sebuah data atau bahkan dari variabel yang lain. Pada teladan di bawah, <data:name/>
akan menampilkan teks Taufik Nurrohman:
<b:with var='name' value='Taufik Nurrohman'> <h1><data:name/></h1> </b:with>
Dan pada teladan di bawah, variabel site
akan mempunyai 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 sanggup menuliskan data berupa koleksi, contohnya menyerupai 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 berdasarkan Saya yaitu bahwa setiap variabel hanya berlaku di dalam cakupan masing-masing tag <b:with>
sebab sifat tag ini memang tidak sama dengan tag yang sanggup bangun sendiri menyerupai contohnya <b:class>
. Oleh sebab itu, dikala kita ingin menciptakan beberapa nama variabel sekaligus dalam satu tema, maka kita perlu menciptakan lingkup tag <b:with>
berkali-kali menyerupai ini, yang mana akan menciptakan instruksi 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 gampang dan sesuai mekanisme tentunya yaitu 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 jikalau Blogger memang benar masih tetap akan terus dikembangkan yaitu adanya sebuah tag yang mempunyai fungsi menyerupai tag <b:with>
namun dengan sintaks dan sifat yang sama dengan <b:class>
, dengan cita-cita bahwa kita akan sanggup menciptakan 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” -->
Sumber https://www.dte.web.id/