Xin chào các bạn!Hiển thị các mẫu trong người trợ giúp trong tay lái
Vì dường như không có câu trả lời về vấn đề này: Passing variables through handlebars partial nhưng hiện tại tôi đang giải quyết một chút để có được công việc này. Vì vậy, ý tưởng là để đăng ký một chức năng trợ giúp mà làm cho một mẫu cụ thể với các giá trị có thể. Mã bit giúp bạn hiểu rõ hơn.
Đây là cách tôi muốn gọi helper của tôi:
<div>
{{myHelper}}
</div>
helper này được đăng ký với mã này chút:
hbs.registerHelper(name, function (args) {
args = args || {};
var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
return template(args);
});
tôi đặt snippiet này vào một vòng lặp để đăng ký giúp việc khác nhau tại Một lần. Điều này có nghĩa là 'tên' và 'tệp' được đưa ra.
Được rồi bây giờ tôi có thể làm một cái gì đó như thế này:
// 'values' could be something like this:
var values = { headline: 'HEADLINE' }
<div>
{{myHelper values}}
</div>
Trong vòng một helper bây giờ tôi có thể kiểm tra nếu một giá trị nhất định được đưa ra:
// myHelper template
<div>
{{#if headline}}
<h1>{{headline}}</h1>
{{/if}}
<p>Lorem ipsum</p>
</div>
workaround nhỏ này làm việc cho tôi nhưng có một vấn đề. Đăng ký một trình trợ giúp như được giải thích ở trên, trả về một chuỗi thoát HTML đơn giản. Vì vậy, việc viện dẫn người trợ giúp không xuất ra đoạn mã HTML được hiển thị. Nó xuất ra HTML dưới dạng chuỗi thoát.
Có ai trong số các bạn có ý tưởng về cách tôi có thể làm cho đoạn mã của tôi trả về HTML dưới dạng HTML không?
/Pascal
Vâng! Nó ổn với tôi! Cám ơn nhiều, ông bạn! – PascalPrecht
Nếu nó hoạt động, đánh dấu câu trả lời cho phù hợp – brafales
Chỉ trong trường hợp ai đó chạy vào điều này .... Phương thức 'SafeString' phải được truy cập thông qua' hbs.handlebars' và không trực tiếp thông qua 'hbs' ... đây là nút. người dùng js :) – Maroshii