Saya baru saja menemukan sesuatu yang belum pernah saya lihat sebelumnya. Dalam sumber aplikasi TODO contoh Backbone.js ( Contoh TODO Backbone ) mereka memiliki template di dalam a <script type = "text/template"></script>
, yang berisi kode yang terlihat seperti sesuatu dari PHP tetapi dengan tag JavaScript.
Adakah yang bisa menjelaskan hal ini kepada saya? Apakah ini sah?
type="text/tcl"
yang saya lihat di dokumen W3C ? Bagaimana cara menggunakannya? (Haruskah saya mengajukan pertanyaan lain?)Jawaban:
Tag skrip tersebut adalah cara umum untuk menerapkan fungsi templating (seperti dalam PHP) tetapi di sisi klien.
Dengan mengatur jenis ke "teks / templat", itu bukan skrip yang bisa dipahami oleh peramban, dan peramban itu akan mengabaikannya. Ini memungkinkan Anda untuk meletakkan apa pun di sana, yang kemudian dapat diekstraksi kemudian dan digunakan oleh pustaka templating untuk menghasilkan cuplikan HTML.
Backbone tidak memaksa Anda untuk menggunakan perpustakaan templating tertentu - ada beberapa di luar sana: kumis , Haml , Eco , templat Google Penutupan , dan sebagainya (yang digunakan dalam contoh yang Anda tautkan adalah underscore.js ). Ini akan menggunakan sintaks mereka sendiri untuk Anda tulis di dalam tag skrip tersebut.
sumber
.innerHTML
, karenanya sudah umum sekarang di antara mesin templating.<template />
tag. html5rocks.com/en/tutorials/webcomponents/template & caniuse.com/#search=template<template>
ada di sini, tetapi situs masih menggunakan teknik ini, seperti reddit.com. : FIni sah dan sangat berguna!
Coba ini:
Beberapa perpustakaan templating Javascript menggunakan teknik ini. Handlebars.js adalah contoh yang bagus.
sumber
Dengan menetapkan tag skrip
type
selaintext/javascript
, browser tidak akan menjalankan kode internal tag skrip. Ini disebut template mikro. Konsep ini banyak digunakan dalam aplikasi halaman tunggal (alias SPA).Untuk template mikro, jenis tag skrip adalah
text/template
. Hal ini dijelaskan dengan sangat baik oleh pencipta Jquery John Resig http://ejohn.org/blog/javascript-micro-templating/sumber
Untuk menambah jawaban Box9:
Backbone.js bergantung pada underscore.js, yang dengan sendirinya mengimplementasikan mikrotemplat asli John Resig.
Jika Anda memutuskan untuk menggunakan Backbone.js dengan Rails, pastikan untuk memeriksa permata Jammit. Ini memberikan cara yang sangat bersih untuk mengelola kemasan aset untuk templat. http://documentcloud.github.com/jammit/#jst
Secara default Jammit juga menggunakan mikrotemplates JResig, tetapi juga memungkinkan Anda untuk mengganti mesin templating.
sumber
Ini adalah cara menambahkan teks ke HTML tanpa dirender atau dinormalisasi.
Tidak ada bedanya dengan menambahkannya seperti:
sumber
<img src="image.jpg">
di dalam textarea tidak akan menyebabkan browser mengambilimage.jpg
, browser tahu bahwa konten di dalam textarea tidak dimaksudkan untuk dirender.</script>
Anda tidak dapat menggunakannya di dalam tag skrip, jadi Anda dapat menggunakan textarea lalu, dan sebaliknya.<script type = “text/template”> … </script>
sudah usang. Gunakan<template>
tag saja.sumber
<template>
tag masih tidak didukung oleh Internet Explorer pada IE 11.<template>
. Sebagian besar browser desktop utama mendukung<template>
tag ini . Saya sangat merekomendasikan menggunakannya sampai sekarang. developer.mozilla.org/en/docs/Web/HTML/Element/…Template jQuery adalah contoh dari sesuatu yang menggunakan metode ini untuk menyimpan HTML yang tidak akan dirender secara langsung (itulah intinya) di dalam HTML lain: http://api.jquery.com/jQuery.template/
sumber