2012-02-03 33 views
7

Tôi đang cố biên dịch trước mẫu Handlebars.js app/views/templates/walrus.handlebar bằng lệnh handlebar app/views/templates/walrus.handlebar nhưng không thành công vì mẫu sử dụng trình trợ giúp tùy chỉnh mà tôi đã xác định trong tệp js riêng biệt public/javascripts/handlebar_helpers.js.Làm thế nào để bạn đăng ký một trình trợ giúp tùy chỉnh nếu bạn đang biên dịch trước một trình trợ giúp tùy chỉnh trong Handlebars.js?

Làm cách nào để gọi phiên bản dòng lệnh của Handlebars để nhận biết tệp javascript với trình trợ giúp tùy chỉnh?

+0

Bạn đã bao giờ tìm cách thực hiện? – emzero

Trả lời

5
handlebars <input> -f <output> -k <helper> 

Đó là trong các tài liệu ở đây: http://handlebarsjs.com/precompilation.html

Sửa tháng 3 năm 2014:

Đối với những người có vấn đề đọc tài liệu, đây là một ví dụ cho tùy chỉnh helper "fullname"

handlebars myTemplate.handlebars -f handlebars-fullname.js -k fullname 

với người trợ giúp này:

Handlebars.registerHelper('fullname', function(person) { 
    return person.firstName + " " + person.lastName; 
}); 

Bạn vẫn phải bao gồm các helper trong trang với handlebars.runtime.js

+0

@wusher Cuộc gọi của bạn trông như thế nào? Tôi không chắc làm thế nào -k được sử dụng với người trợ giúp tùy chỉnh. – surjikal

+0

Điều này sẽ không hoạt động với những người giúp đỡ tùy chỉnh – Jaseem

+0

Tôi đang tìm câu trả lời cho điều này. '-k' chỉ hoạt động cho người giúp đỡ gốc, không phải tùy chỉnh ... – emzero

0
handlebars myTemplate.handlebars -f handlebars-fullname.js -k fullname 

Bước trên không phải là một bắt buộc một, mẫu handlebar của bạn sẽ làm việc ngay cả khi bạn không ghi rõ tên helper trong trước biên soạn, tuy nhiên đoạn mã sau (mà về cơ bản nên chứa tất cả người giúp đỡ của bạn) cần phải được chèn vào client-side

Handlebars.registerHelper('fullname', function(person) { 
    return person.firstName + " " + person.lastName; 
}); 

tôi đã cố gắng này và nó hoạt động như một say mê!

Các vấn đề liên quan