2011-11-15 34 views

Trả lời

12

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.

+0

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

+0

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

-3

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.

+0

Điều gì về các mảnh nhỏ của kết xuất, như hàng bảng? –

+0

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? –

+0

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. –

4

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

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