Tôi đang trong quá trình xây dựng một ứng dụng Meteor mới và tôi không thể tìm ra cách thêm logic JavaScript với Handlebars để chạy console.log()
trước mỗi vòng lặp của tôi. Trong xương sống tôi sẽ chỉ làm, <% console.log(data); %>
để kiểm tra dữ liệu đã được truyền vào.
Tôi không chắc chắn làm thế nào để làm điều này với Meteor và Handlebars và tôi không thể tìm thấy giải pháp trên trang web của họ.Làm cách nào để thêm giao diện điều khiển console.log() JavaScript bên trong một mẫu Handlebars?
Trả lời
Tạo một helper tay lái trong một trong các tập tin JavaScript client-nạp trong dự án của bạn:
Template.registerHelper("log", function(something) {
console.log(something);
});
Và sau đó gọi nó trong mẫu của bạn:
{{log someVariable}}
Bạn có thể đăng nhập bối cảnh hiện nay với chỉ cần {{log this}}
.
(Lưu ý rằng trong Meteor trước khi phiên bản 0.8, hoặc ở tay lái thuần khiết bên ngoài của một ứng dụng Meteor, thay thế Template.registerHelper
với Handlebars.registerHelper
.)
tôi thấy helper này là khá hữu ích
Handlebars.registerHelper("debug", function(optionalValue) {
console.log("Current Context");
console.log("====================");
console.log(this);
if (optionalValue) {
console.log("Value");
console.log("====================");
console.log(optionalValue);
}
});
sau đó bạn có thể sử dụng nó trong hai cách
chỉ là một đơn giản
{{debug}}
mà sẽ in ra bối cảnh hiện nay
hoặc kiểm tra một giá trị duy nhất
{{debug val}}
chỉ in ra giá trị mà
Tôi thích điều này theo lý thuyết, nhưng khi tôi sử dụng nó, 'optionalValue' luôn được định nghĩa là một đối tượng ngay cả khi không có giá trị tùy chọn nào được chuyển. Tôi không biết nếu đây là một hành vi mặc định của phương pháp registerHelper của một cái gì đó khác trong khuôn khổ của tôi. Ngoài ra, không trả lại bất cứ điều gì dường như gây ra Handlebars ngừng phân tích cú pháp sau khi đăng nhập đầu tiên. – gfullam
Handlebars v3 đã tích hợp sẵn trong nhật ký helper bây giờ. Bạn có thể đăng nhập vào giao diện điều khiển từ bên trong một mẫu
{{log this}}
Bạn có thể thiết lập mức độ khai thác gỗ như vậy
Handlebars.logger.level = 0; // for DEBUG
Tôi làm điều này,
Handlebars.registerHelper('log', function(content) {
console.log(content.fn(this));
return '';
});
cho phép tôi để mã hóa một trình gỡ lỗi khối, sử dụng hệ thống templating Tôi đang ngồi bên trong. Vì vậy, tôi có thể cung cấp cho nó một khối và nó sẽ giải quyết nội dung nhưng chỉ cần gửi nó đến console.log.
{{#log}} title is {{title}} {{/log}}
tôi cũng làm điều này
$('script[type="text/x-handlebars-template"]').each(function(){
Handlebars.registerPartial(this.id,$(this).html());
});
mà làm cho tất cả các mẫu của tôi có sẵn như là partials, cho phép tôi để KHÔ lên mẫu của tôi thành các khối chức năng tái sử dụng mà không cần phải chỉnh sửa bất cứ điều gì khác hơn so với mẫu tự .
Vì vậy, tôi bây giờ có thể làm những việc như
{{#log}}Attribute listing {{>Attributes}}{{log}}
với
<script id="Attributes" type="text/x-handlebars-template">
{{#each attributes}}
{{@key}}={{this}}
{{/each}}
</script>
tôi luôn luôn sử dụng các helper sau: nó có thể ghi dữ liệu và thêm một breakpoint tùy chọn. Bằng cách này bạn có thể kiểm tra bối cảnh tay lái hiện trong trình gỡ lỗi trình duyệt ;-)
Tìm thấy trên https://gist.github.com/elgervb/5c38c8d70870f92ef6338a291edf88e9
/**
* Register a debug helper for Handlebars to be able to log data or inspect data in the browser console
*
* Usage:
* {{debug someObj.data}} => logs someObj.data to the console
* {{debug someObj.data true}} => logs someObj.data to the console and stops at a debugger point
*
* Source: https://gist.github.com/elgervb/5c38c8d70870f92ef6338a291edf88e9
*
* @param {any} the data to log to console
* @param {boolean} whether or not to set a breakpoint to inspect current state in debugger
*/
Handlebars.registerHelper('debug', function(data, breakpoint) {
console.log(data);
if (breakpoint === true) {
debugger;
}
return '';
});
- 1. Làm thế nào để thêm một bộ điều khiển điều hướng với bộ dựng giao diện?
- 2. MySQL dump bên trong giao diện điều khiển mysql
- 3. Có cách nào trong JavaScript để nghe sự kiện giao diện điều khiển không?
- 4. giao diện giống như giao diện điều khiển trên trang web bằng cách sử dụng javascript
- 5. Chạy các lệnh Rails bên ngoài giao diện điều khiển
- 6. Cách tìm giao diện điều khiển ActiveX?
- 7. Làm cách nào để tạo Bộ điều khiển XY như Giao diện người dùng trong WPF
- 8. Làm cách nào để gửi biểu mẫu bên trong một điều khiển WebBrowser?
- 9. thật sạch giết chết một ứng dụng giao diện điều khiển từ bên trong một nhóm các giao diện điều khiển ứng dụng
- 10. Làm cách nào để chuyển giao console.log làm đối số cho hàm JavaScript của tôi?
- 11. Thêm một con đường DLL bản địa để quản lý giao diện điều khiển ứng dụng
- 12. tuyến nghiệm trong giao diện điều khiển
- 13. Làm thế nào để thêm một mẫu để cơ thể trong Meteor bên trong một gói
- 14. C# Làm cách nào để chuyển hướng luồng sang giao diện điều khiển Out?
- 15. Làm thế nào để viết một giao diện điều khiển menu trong ANSI/ISO C?
- 16. Làm cách nào để đọc giao diện điều khiển đầu vào/stdin trong Dart?
- 17. Tin nhắn Console.log không hiển thị trong bảng điều khiển javascript của Chrome?
- 18. Di chuyển một ký tự bên trái trong giao diện điều khiển
- 19. Có đầu ra của một ứng dụng giao diện điều khiển trong Visual Studio thay vì giao diện điều khiển
- 20. logic boolean trong một handlebars mẫu
- 21. Làm thế nào để triển khai một ứng dụng giao diện điều khiển
- 22. Cách thêm các điều khiển bên dưới một UIWebView
- 23. Sử dụng giao diện điều khiển Putty trong Notepad ++
- 24. Tôi làm cách nào để thêm ngắt dòng hoặc html bên trong Bảng điều khiển?
- 25. Chrome DevTools phần mở rộng giao diện điều khiển
- 26. Bắt sở hữu chức năng một Ember điều khiển từ bên trong một Ember tay lái mẫu
- 27. Làm thế nào để echo để giao diện điều khiển trong Laravel và Artisan?
- 28. Lỗi giao diện điều khiển lạ jboss
- 29. Điều gì sẽ xảy ra nếu giao diện điều khiển console.log (4) không được xác định trong Bảng điều khiển của Chrome?
- 30. Làm cách nào để tạo giao diện người dùng bảng điều khiển bằng ASP.NET MVC?
Cảm ơn. Những công việc này! –
Điều này có thể sẽ ghi đè lên chức năng đăng nhập được xây dựng, vì vậy tên khác nhau nên được chọn. Hoặc Handlebars.logger.log có thể được ghi đè (trống) để làm việc với 'nhật ký', nhưng điều này cho phép một số đăng nhập không mong muốn ở những nơi khác. – user2846569