Dokumentasi untuk templating sebagian, saya memperhatikan sumbernya.
Fungsi _.template memiliki 3 argumen:
- Teks string : string template
- Objek data : data evaluasi
- Objek pengaturan : pengaturan lokal, yang _.templateSettings adalah pengaturan global keberatan
Jika tidak ada data (atau nol) yang diberikan, maka fungsi render akan dikembalikan. Ada 1 argumen:
- Obyek Data : sama dengan data yang di atas
Ada 3 pola regex dan 1 parameter statis dalam pengaturan:
- Evaluasi RegExp : "<% code%>" dalam string template
- RegExp interpolasi : "<% = code%>" dalam string template
- RegExp escape : "<% - code%>"
- Variabel string : opsional, nama parameter data dalam string templat
Kode dalam mengevaluasi bagian akan hanya dievaluasi. Anda dapat menambahkan string dari bagian ini dengan perintah __p + = "mystring" ke templat yang dievaluasi, tetapi ini tidak disarankan (bukan bagian dari antarmuka templating), gunakan bagian interpolasi alih-alih itu. Jenis bagian ini untuk menambahkan blok seperti jika atau untuk templat.
Hasil kode di bagian interpolasi akan ditambahkan ke templat yang dievaluasi. Jika null diberikan kembali, maka string kosong akan ditambahkan.
Bagian melarikan diri lolos dari html dengan _.escape pada nilai kembali dari kode yang diberikan. Jadi mirip dengan _.escape (kode) di bagian interpolasi , tetapi ia lolos dengan \ karakter spasi seperti \ n sebelum melewati kode ke _.escape . Saya tidak tahu mengapa itu penting, ada dalam kode, tetapi ia bekerja dengan baik dengan interpolasi dan _.escape - yang tidak luput dari karakter white-space - juga.
Secara default parameter data dilewatkan oleh pernyataan with (data) {...} , tetapi jenis evaluasi ini jauh lebih lambat daripada evaluasi dengan variabel bernama. Jadi penamaan data dengan parameter variabel adalah sesuatu yang baik ...
Sebagai contoh:
var html = _.template(
"<pre>The \"<% __p+=_.escape(o.text) %>\" is the same<br />" +
"as the \"<%= _.escape(o.text) %>\" and the same<br />" +
"as the \"<%- o.text %>\"</pre>",
{
text: "<b>some text</b> and \n it's a line break"
},
{
variable: "o"
}
);
$("body").html(html);
hasil
The "<b>some text</b> and
it's a line break" is the same
as the "<b>some text</b> and
it's a line break" and the same
as the "<b>some text</b> and
it's a line break"
Anda dapat menemukan lebih banyak contoh di sini tentang cara menggunakan templat dan mengabaikan pengaturan default:
http://underscorejs.org/#template
Dengan memuat template Anda memiliki banyak pilihan, tetapi pada akhirnya Anda selalu harus mengubah template menjadi string. Anda dapat memberikannya sebagai string normal seperti contoh di atas, atau Anda dapat memuatnya dari tag skrip, dan menggunakan fungsi .html () dari jquery, atau Anda dapat memuatnya dari file terpisah dengan plugin tpl dari require.js .
Pilihan lain untuk membangun pohon dom dengan laconic bukan templating.