Handlebars nhỏ nhưng có võ
https://viblo.asia/p/handlebars-nho-nhung-co-vo-MgNvWXbaGYx
Handlebars nhỏ nhưng có võ
This post has been more than 4 years since it was last updated.
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:
Đ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
Sử dụng
ví dụ
Cũng ví dụ trên ta sẽ viết lại với handlebars như sau:
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
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
{{ a }}
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
@
vào đăng trước như sau@{{ a }}
Compile a template
Vòng lặp
each
Điều kiện
if
Helpers
Để đăng ký một helper ta sử dụng
Handlebars.registerHelper('name', function(val) {}
Khi sử dụng ta chỉ cần gọi như sau
Tài liệu tham khảo
Last updated