Các tài liệu cho templating là một phần, tôi đã xem nguồn.
Hàm _.template có 3 đối số:
- Chuỗi văn bản : chuỗi mẫu
- Dữ liệu đối tượng : dữ liệu đánh giá
- Cài đặt đối tượng : cài đặt cục bộ, _.templateS Settings là đối tượng cài đặt chung
Nếu không có dữ liệu (hoặc null) nào được cung cấp, thì chức năng kết xuất sẽ được trả về. Nó có 1 đối số:
- Dữ liệu đối tượng : giống như dữ liệu trên
Có 3 mẫu regex và 1 tham số tĩnh trong cài đặt:
- Đánh giá RegExp : "<% code%>" trong chuỗi mẫu
- Nội suy RegExp : "<% = code%>" trong chuỗi mẫu
- RegExp thoát : "<% - mã%>"
- Biến chuỗi : tùy chọn, tên của tham số dữ liệu trong chuỗi mẫu
Mã trong một phần đánh giá sẽ được đánh giá đơn giản. Bạn có thể thêm chuỗi từ phần này bằng lệnh __p + = "mystring" vào mẫu được đánh giá, nhưng điều này không được khuyến nghị (không phải là một phần của giao diện tạo khuôn mẫu), sử dụng phần nội suy thay vì đó. Loại phần này là để thêm các khối như nếu hoặc cho mẫu.
Kết quả của mã trong phần nội suy sẽ được thêm vào mẫu được đánh giá. Nếu null được trả lại, thì chuỗi rỗng sẽ được thêm vào.
Các thoát phần thoát html với _.escape trên giá trị trở lại của mã nhất định. Vì vậy, nó tương tự như một _.escape (mã) trong phần nội suy , nhưng nó thoát với \ các ký tự khoảng trắng như \ n trước khi nó chuyển mã đến _.escape . Tôi không biết tại sao điều đó lại quan trọng, nó nằm trong mã, nhưng nó hoạt động tốt với phép nội suy và _.escape - không thoát khỏi các ký tự khoảng trắng - cũng vậy.
Theo mặc định, tham số dữ liệu được truyền bằng câu lệnh with (data) {...} , nhưng kiểu đánh giá này chậm hơn nhiều so với đánh giá với biến được đặt tên. Vì vậy, đặt tên dữ liệu với biến tham số là một cái gì đó tốt ...
Ví dụ:
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);
các kết quả
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"
Bạn có thể tìm thấy ở đây nhiều ví dụ hơn về cách sử dụng mẫu và ghi đè cài đặt mặc định:
http://underscorejs.org/#template
Bằng cách tải mẫu, bạn có nhiều tùy chọn, nhưng cuối cùng, bạn luôn phải chuyển đổi mẫu thành chuỗi. Bạn có thể cung cấp cho nó như một chuỗi bình thường như ví dụ ở trên hoặc bạn có thể tải nó từ thẻ script và sử dụng hàm .html () của jquery hoặc bạn có thể tải nó từ một tệp riêng biệt với plugin tpl của allow.js .
Một lựa chọn khác để xây dựng cây dom với laconic thay vì templating.