Tôi là một nhà phát triển đường ray đang cố gắng tìm hiểu Backbone và sau đó tôi gặp phải vấn đề này: vì các mẫu Underscore
bao gồm các biểu tượng như <%=%>
, tôi đoán các mẫu không thể được đưa vào các tệp erb
. mỗi mẫu đơn? Và nó nên là gì?Ở đâu trong khung Rails tôi nên đặt các mẫu Backbone của mình?
Trả lời
Bạn có thể thoát khỏi những biểu tượng ERB bằng cách sử dụng hai %
trong thẻ mở, và đặt các mẫu xương sống của bạn trong đường ray lần xem:
<script type='text/template' id="my-template'>
<%%= name %>
</script>
chí đầu ra sau trong trang của bạn:
<script type='text/template' id="my-template'>
<%= name %>
</script>
Đưa mẫu Backbone của bạn trực tiếp vào khung nhìn đường ray của bạn là IMHO tùy chọn tốt nhất khi bạn đang cố gắng tìm hiểu. Bạn đã vật lộn với các khái niệm mới, không cần phải thêm một trở ngại khác.
Bạn nên đặt các mẫu Backbone của mình ở đâu? Tôi không nói gì cả. Tôi tin rằng trong hầu hết các ứng dụng Rails, máy chủ phải chịu trách nhiệm cho tất cả hiển thị HTML, trong khi JavaScript phía máy khách chỉ chịu trách nhiệm chèn HTML được hiển thị vào DOM. Trong số những thứ khác, điều này làm cho I18n dễ dàng hơn. Một ngoại lệ sẽ là nếu Rails đơn giản được sử dụng như một phần phụ trợ nhẹ cho một ứng dụng chạy chủ yếu ở phía máy khách (mặc dù trong trường hợp đó, bạn có thể muốn sử dụng Sinatra hoặc một cái gì đó thay thế). Trong trường hợp này, Rails có thể hiển thị không có gì là và có JS làm tất cả các hình ảnh hiển thị.
Lưu ý nguyên tắc cơ bản tại đây. Máy chủ phải chịu trách nhiệm cho tất cả hiển thị hoặc ứng dụng khách nên. Tách nó sẽ làm cho cuộc sống khó khăn hơn.
Điều gì về các mảnh nhỏ của kết xuất, như hàng bảng? –
Câu trả lời giống nhau. Không chia hiển thị. Hay tôi hiểu lầm câu hỏi của bạn? –
Có lẽ tôi hiểu sai câu trả lời. Vâng, để sử dụng 'Backbone.js', tôi phải viết mẫu ở đâu đó. Các mẫu này sử dụng các thẻ '<%= %>' và câu hỏi của tôi là liệu có cách tạo đường ray làm cho thẻ này trở thành khách hàng hay không hoặc có định dạng nào tôi có thể sử dụng để hiển thị mẫu Backbone.js (Underscore.js) dễ dàng hơn không. –
Bắt đầu với Rails 3.1, nó cung cấp hai thứ giúp làm việc với các mẫu Backbone dễ dàng hơn một chút: đường ống nội dung và biên dịch JST (JavaScript Template) tự động.
Tạo thư mục trong thư mục app/assets
được gọi là templates
. Thư mục này sẽ tự động được chọn bởi đường ống nội dung.
Tiếp theo, đặt tên tệp trong thư mục đó với phần mở rộng là jst
và loại mẫu bạn đang tạo ejs
(javascript nhúng). Bạn thậm chí có thể lồng chúng vào các thư mục. Ví dụ:
app/assets/templates/my_template.jst.ejs
app/assets/templates/bookmarks/show.jst.ejs
Đường ống dẫn dầu tài sản cũng cho phép bạn sử dụng ngôn ngữ khuôn mẫu khác như coffeescript nhúng, ria mép, tay lái, vv bằng cách đơn giản là thay đổi đuôi tệp (và bao gồm bất kỳ viên ngọc cần thiết).
Bây giờ để tham khảo các mẫu JST của bạn trong quan điểm Backbone của bạn, chỉ cần sử dụng đường dẫn đến filename:
var Bookmark = Backbone.View.extend({
template: JST['bookmarks/show'],
render: function() {
this.$el.html(this.template(this.model.attributes));
return this;
}
});
Bạn có thể cần phải thêm dòng này vào application.js
của bạn:
// require_tree ../templates
Dưới đây là một bài viết hay giải thích tất cả điều này chi tiết hơn một chút: http://www.bigjason.com/blog/precompiled-javascript-templates-rails-3-1
- 1. Tôi nên đặt mocks của mình ở đâu?
- 2. Backbone.js: Tôi đặt thiết lập jQuery của mình ở đâu?
- 3. Tôi nên đặt url trang web của mình ở cài đặt django ở đâu?
- 4. Tôi nên đặt các tệp widget tùy chỉnh của mình trong khung công tác Yii ở đâu?
- 5. Tôi nên đặt hình dạng ở đâu trong các thư mục Android của mình?
- 6. Mẫu jQuery - tôi nên đặt chúng ở đâu?
- 7. Tôi nên đặt chế độ xem asp.net-mvc mạnh mẽ của mình ở đâu?
- 8. Tôi nên đặt scriptmanager ở đâu
- 9. Tôi nên đặt các tệp cấu hình IPython ở đâu?
- 10. Tôi nên đặt plugin .vim ở đâu?
- 11. Tôi nên đặt liên kết tới các tệp Javascript/jQuery trong tệp html của mình ở đâu?
- 12. Nếu tôi muốn JDK cho máy Mac của mình, tôi nên tìm nó ở đâu?
- 13. Trong Express, tôi đặt các tệp sitemap.xml và robots.txt của mình ở đâu?
- 14. Tôi nên đặt AngularJS Nhà máy & Dịch vụ ở đâu?
- 15. Nên đặt beans.xml ở đâu?
- 16. Tôi nên lưu trữ vĩnh viễn chức năng tùy chỉnh của mình ở đâu trong R?
- 17. Tôi nên đặt chỗ tĩnh tĩnh công cộng ở đâu?
- 18. Tôi nên xác định bảng dữ liệu của mình ở đâu?
- 19. Tôi nên bao gồm normalize.css ở đâu?
- 20. MEF: Tôi nên đặt bộ phận sắp xếp ở đâu?
- 21. Tôi nên lưu trữ trạng thái cấp trò chơi của mình ở đâu?
- 22. Tôi đặt tờ khai đại biểu C# của mình ở đâu trong một tệp của riêng mình?
- 23. Tôi nên đặt lớp cơ sở trống ở đâu?
- 24. Tôi nên đặt mã phụ trợ không phục hồi lại của tôi ở đâu?
- 25. Tôi nên đặt mô-đun python của riêng mình ở đâu để nó có thể được nhập
- 26. Tôi nên đặt kế hoạch chi tiết của tôi ở đâu trước số
- 27. Truy cập tài nguyên đa luồng - Tôi đặt khóa của mình ở đâu?
- 28. Tôi có thể lưu các mô-đun Haskell của mình ở đâu?
- 29. Mẫu nhà máy ở đâu nên có trong DDD?
- 30. Tôi nên đặt các chức năng linh tinh vào một dự án .NET ở đâu?
Mẹo hay, tôi không biết điều đó.Thật vậy tôi sử dụng jst được lưu trữ sạch trong một cây bên trong các tài sản – apneadiving
Tôi đã sử dụng regex tùy chỉnh cho các mẫu gạch dưới. Cảm ơn hai tip '%'. – Agent47DarkSoul