2011-09-28 34 views
5

Tôi đang tạo ứng dụng ASP.Net MVC 3 bằng cách sử dụng Backbone.js. Tôi cũng đang sử dụng các mẫu jQuery cho các khung nhìn.Cách thực hành tốt nhất để đặt chế độ xem mẫu và mã xem xương sống

Câu hỏi của tôi là làm cách nào để sắp xếp các tệp theo cách hiệu quả?

Hiện tại tôi có tệp XXX.js cho ứng dụng xương sống và mẫu được lưu trữ trong trang hiển thị ứng dụng xương sống, Index.cshtml. Làm cách nào để di chuyển các mẫu vào một tệp khác mà tôi có thể đưa vào như tôi bao gồm XXX.js?

App/ 
    Scripts/ 
    backbone.js 
    underscore.js 
    jquery-1.6.4.js 
    jquery.tmpl.js 
    myBackboneApplication.js 
    Views/ 
    Home/ 
     Index.cshtml 
    Controllers/ 
    HomeController.cs 

Tôi muốn di chuyển các mẫu ra khỏi Index.cshtml và vào một thứ gì đó liên quan đến myBackboneApplication.js. Một cái gì đó mà tôi có thể bao gồm như một tập tin bên trong Index.cshtml thay vì inlined.

Trả lời

4

Bạn có thể xem this related question. Hai tùy chọn cơ bản là:

  1. Tạo mẫu của bạn dưới dạng chuỗi và bao gồm tệp Javascript trong tệp chỉ mục của bạn.

  2. Tạo mẫu của bạn dưới dạng HTML trong các tệp riêng biệt và chèn chúng vào tệp chỉ mục tại thời gian xây dựng, rất có thể trong các thẻ <script type="text/template">.

Trong dự án Backbone.js hiện tại của tôi, tôi đang sử dụng tùy chọn thứ hai - tôi giữ tất cả các mẫu trong thư mục riêng và chèn vào tệp chỉ mục trong quá trình xây dựng kiến. Mỗi mẫu (ví dụ: my-view-template.html) được chèn vào thẻ <script> với id="my-view-template" và sau đó tôi sử dụng jQuery để tạo mẫu bằng cách sử dụng $("#my-view-template").html() làm chuỗi mẫu.

+0

Ugh! Tôi đoán tôi cần phải cho tôi một số đường ống tài sản kung-fu! – Jason

+0

Tôi cũng đã làm điều này (# 2) gần đây. nó hoạt động tốt và cung cấp rất nhiều tính linh hoạt –

+4

Tôi sử dụng require.js để kéo các tệp mẫu html dưới dạng nội dung văn bản - các tệp này được kết hợp cùng với tất cả các js vào một tệp. vì vậy máy chủ của tôi phục vụ các tệp chỉ mục rất nhỏ ... chỉ mô hình được tải khởi động và một thẻ tập lệnh. – timDunham

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