html2canvas
Đây là tất cả các tùy chọn cấu hình có sẵn.
cho phép | false | Có cho phép hình ảnh có nguồn gốc chéo làm mờ vải |
màu nền | 0 | Màu nền Canvas, nếu không có gì được chỉ định trong DOM. Đặt 1 cho minh bạch |
Tranh sơn dầu | 1 | Yếu tố 3 hiện có để sử dụng làm cơ sở để rút ra |
nước ngoài | false | Có cho phép hình ảnh có nguồn gốc chéo làm mờ vải |
màu nền | 0 | Màu nền Canvas, nếu không có gì được chỉ định trong DOM. Đặt 1 cho minh bạch |
Tranh sơn dầu | 1 | Yếu tố 3 hiện có để sử dụng làm cơ sở để rút ra |
nước ngoài | Có nên sử dụng kết xuất ForeignObject hay không nếu trình duyệt hỗ trợ nó | ImageTimeout |
5 | 1 | Yếu tố 3 hiện có để sử dụng làm cơ sở để rút ra |
nước ngoài | 1 | Yếu tố 3 hiện có để sử dụng làm cơ sở để rút ra |
nước ngoài | Có nên sử dụng kết xuất ForeignObject hay không nếu trình duyệt hỗ trợ nó | ImageTimeout |
5 | Thời gian chờ để tải một hình ảnh [tính bằng mili giây]. Đặt thành 6 thành Tắt thời gian chờ. | bỏ qua |
7 | false | Có cho phép hình ảnh có nguồn gốc chéo làm mờ vải |
màu nền | 0 | Màu nền Canvas, nếu không có gì được chỉ định trong DOM. Đặt 1 cho minh bạch |
Tranh sơn dầu | 1 | Yếu tố 3 hiện có để sử dụng làm cơ sở để rút ra |
nước ngoài | Có nên sử dụng kết xuất ForeignObject hay không nếu trình duyệt hỗ trợ nó | ImageTimeout |
5 | Thời gian chờ để tải một hình ảnh [tính bằng mili giây]. Đặt thành 6 thành Tắt thời gian chờ. | bỏ qua |
7 | Hàm vị ngữ loại bỏ các phần tử phù hợp khỏi kết xuất. | đăng nhập |
8 | Bật đăng nhập cho mục đích gỡ lỗi | onclone |
Hàm gọi lại được gọi là khi tài liệu đã được nhân bản để kết xuất, có thể được sử dụng để sửa đổi các nội dung sẽ được hiển thị mà không ảnh hưởng đến tài liệu nguồn gốc. | Ủy quyền | URL cho proxy sẽ được sử dụng để tải hình ảnh có nguồn gốc chéo. Nếu để trống, hình ảnh có nguồn gốc chéo won sẽ được tải. |
RemoveContainer | Có nên dọn dẹp các yếu tố dom được nhân bản HTML2Canvas tạo ra tạm thời | tỉ lệ |
{{ #each user }}
@{{ this }}
{{ /each }}
var user = {
firstname: 'First name',
lastname: 'Last name',
email: 'a',
info: 'info',
age: 10
};
var source = $["#demo_user"].html[];
var template = Handlebars.compile[source];
$['#user_info'].html[template[user]];
2Đã đăng vào thg 11 26, 2016 10:33 CH 2 phút đọc 2 phút đọc
Một việc mà ai cũng ngại khi viết js
- Bạn không lạ gì đoạn code như thế này:
var user = {
firstname: 'irst name',
lastname: 'ast name',
email: '',
info: 'nfo',
age: 10,
};
var str = user.firstname + '
'
str += user.lastname + '
'
str += user.email + '
'
str += user.info + '
'
str += user.age + '
'
$['#user_info'].html[str];
- Đoạn code trên làm nhiệm vụ build html hiển thị thông tin của một user từ một nguồn giữ liệu nào đó [có thể là một funtion ajax chẳng hạn]. Vấn đề ở chỗ, cứ mỗi thông tin cần hiển thị ta đều phải thực hiện một câu lệnh tạo mới và ghép string. Việc làm trên không chỉ mất thời gian mà còn rất khó cho việc maintain
- Khi bạn đã từng code angular js sẽ thấy angular có thể binding data vào templete rất nhanh gọn. Khi quay trở lại với javascript thuần hẳn là bạn rất mong nó cũng có thể làm được điều này. Vậy có cách nào không?. May là có!.
Handlebars
- Handlebars là một thư viện javascrip rất mạnh mẽ hỗ trợ bạn có thể binding data vào một templete để hiển thị ra website.
Cài đặt
- Npm: `npm install --save handlebars`
- Bower `bower install --save handlebars`
- Download: //github.com/wycats/handlebars.js/
- Cdn: //cdnjs.com/libraries/handlebars.js/
Sử dụng
ví dụ
- Cũng ví dụ trên ta sẽ viết lại với handlebars như sau:
{{ #each user }}
@{{ this }}
{{ /each }}
var user = {
firstname: 'First name',
lastname: 'Last name',
email: 'a',
info: 'info',
age: 10
};
var source = $["#demo_user"].html[];
var template = Handlebars.compile[source];
$['#user_info'].html[template[user]];
- Vẫn chức năng build giao diện hiển thị thông tin user như trên nhưng mọi chuyện giờ đã minh bạch hơn rất nhiều. khi cần chỉnh sửa ta cũng chỉ cần sửa trong template mà không cần cotrol vào từng dòng code js nữa.
Cú pháp
- templete
{{title}}
{{body}}
- Templete sẽ nằm trong thẻ script và có id để ta có thể gọi khi cần
- Cú pháp để reder data cũng gần giống với angular js. Được nằm giữa 2 dấu
0var source = $["#demo_user"].html[]; var template = Handlebars.compile[source];
- Cú pháp để reder data cũng gần giống với angular js. Được nằm giữa 2 dấu
- Lưu ý: khi cú pháp trên bị xung đột với framewrok của bạn đang sử dụng như Laravel chẳng hạn thì bạn có ể thêm
1 vào đăng trước như sauvar source = $["#demo_user"].html[]; var template = Handlebars.compile[source];
2var source = $["#demo_user"].html[]; var template = Handlebars.compile[source];
- Lưu ý: khi cú pháp trên bị xung đột với framewrok của bạn đang sử dụng như Laravel chẳng hạn thì bạn có ể thêm
Compile a template
var source = $["#demo_user"].html[];
var template = Handlebars.compile[source];
- Vòng lặp
3var source = $["#demo_user"].html[]; var template = Handlebars.compile[source];
{{ #each user }}
@{{ this }}
{{ /each }}
- Điều kiện
4var source = $["#demo_user"].html[]; var template = Handlebars.compile[source];
{{#if title}}
//html
{{/if}}
- Helpers
var context = {
author: {firstName: "Alan", lastName: "Johnson"},
body: "I Love Handlebars",
comments: [{
author: {firstName: "Yehuda", lastName: "Katz"},
body: "Me too!"
}]
};
Handlebars.registerHelper['fullName', function[person] {
return person.firstName + " " + person.lastName;
}];
- Để đăng ký một helper ta sử dụng
5var source = $["#demo_user"].html[]; var template = Handlebars.compile[source];
- Để đăng ký một helper ta sử dụng
- Khi sử dụng ta chỉ cần gọi như sau
{{name val}}
Tài liệu tham khảo
- //handlebarsjs.com/
All rights reserved