2011-09-28 15 views
5

Backbone.js'yi kullanarak bir ASP.Net MVC 3 uygulaması oluşturuyorum. Ayrıca görünümler için jQuery şablonlarını kullanıyorum.Şablon görünümleri ve omurga görünüm kodu yerleştirmek için en iyi uygulama nedir?

Sorunlarım, dosyaları nasıl verimli bir şekilde düzenlerim?

Şu anda omurga uygulaması için bir XXX.js dosyası ve sayfada omurga uygulaması olan Index.cshtml'yi gösteren satır içi şablonlar var. Şablonları, XXX.js'yi eklediğim gibi ekleyebileceğim farklı bir dosyaya nasıl taşıyabilirim?

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

Ben Index.cshtml çıkıp myBackboneApplication.js ilgili bir şey haline şablonları taşımak istiyoruz. İndeksli yerine Index.cshtml içinde bir dosya olarak ekleyebileceğim bir şey.

cevap

4

this related question ürününü ziyaret edebilirsiniz. İki temel seçenek şunlardır:

  1. Şablonlarınızı dizeler halinde oluşturun ve Javascript dosyasını dizin dosyanıza ekleyin.

  2. Şablonlarınızı HTML olarak ayrı dosyalar halinde oluşturun ve büyük olasılıkla <script type="text/template"> etiketleri içinde derleme zamanında dizin dosyasına ekleyin. Benim geçerli backbone.js projede

, ben ikinci seçeneği kullanıyorum - Ben ayrı klasördeki tüm Şablonlarımı tutmak ve benim karınca inşa sırasında benim indeks dosyası içine eklemek. Her şablon (ör. my-view-template.html) id="my-view-template" ile bir <script> etiketine eklenir ve şablon dizesi olarak $("#my-view-template").html() kullanarak şablonları oluşturmak için jQuery'yi kullanırım.

+0

Ugh! Sanırım bana bir miktar boru hattı kung-fu almam gerek! – Jason

+0

Ayrıca bunu (# 2) yakın zamanda yapıyorum. iyi çalışıyor ve çok fazla esneklik sağlıyor –

+4

html şablon dosyalarını metin öğeleri olarak çekmek için require.js'yi kullanıyorum - bunlar tüm j'ler ile birlikte tek bir dosyada bir araya geliyor. Bu yüzden sunucum çok küçük dizin dosyaları sunuyor ... sadece bootloaded modeli ve tek bir script etiketi. – timDunham

İlgili konular