2016-09-22 18 views
5

Açık nedenlerle projemizdeki JS yerine TS ile başlamak istiyoruz.ASP.Net MVC'de JavaScript'ten TypeScript'e nasıl geçilir?

Oluştuğumuz sorun, verilen Görünümün Modeli tarafından belirlenen MVC Görünümlerinde ayarlanan değişkenlerdir.

E.g. tes.cshtml: Ben typescript dosyası bunu bilmediği için test değişkeni elde etmeye çalışmak zaman

@model Testmodel 
<script> 
    var test = {}; 
    var test.myProp = @Model.Testproperty; 
<script> 

Şimdi benim test.ts içinde bir hata aldım.

Burada mimarlık misyonu var mı? Yoksa bunu yapmak için bir numara var mı?

Dürüst olmak gerekirse, RazorViews olarak ayarlanmış ve/veya oluşturulmuş yaklaşık 100 değişkene sahibiz, büyük olasılıkla resx dosyamızdan gerekli olan Ressource Değişkenleri çok fazladır. bir java-script uyarısında!

cevap

1

Tanımlar dosyası oluşturabilir ve tüm küresel bildirimlerinizi buraya koyabilirsiniz. Örneğin: yazma beyanı dosyaları here üzerinde

declare interface SampleInterface{ 
    myProp:string; 
    myFunc(someParameter:string):void; 
} 
declare var test:SampleInterface; 
declare var someFunc:() => number; 

Daha fazla bilgi.

+0

Bu örnek bir işlev için genişletebilir mi? Değişkenler ile iyi çalışıyor gibi görünüyor, teşekkürler :) –

1

Tüm değişkenler, tüm değişkenlerinize ve hatta tüm kaynak değişkenlerinize iliştirilir ve bundan sonra, ihtiyaçlarınız için Window.Variables ve Window.ResxVariables öğelerini ayrıştırabileceğiniz bir yazım yardımcısı gibi bir şey oluşturabilirsiniz.

Sunucu tarafı, temel denetleyicinizde statik olabilecek iki sözlükler Değişkenler ve ResxVariables gerekir.

Sonra bu sözlüklere değişkenler ekleyerek kolaylaştıracağını iki yöntem gerekir

Variables.Add("Timezone", "GMT+2"); 

Ve

ResxVariables.Add("ExitAlert", "Please stay more"); 

Bu iki yöntem Denetleyiciniz eylemleri erişilebilir olacak ve imkanı olacaktır model özelliklerini de ekleyin.

Ardından, bu sözlükleri Windows'a eklenmiş nesneler olarak oluşturmanıza yardımcı olacak bir HtmlHelper'a ihtiyacınız olacaktır.

Ayrıca, yeni bir sayfa oluşturduğunuzda veya ihtiyacınıza bağlı olarak bu sözlükleri temizlemeyi de desteklemeniz gerekir.

Böyle bir şey kullandığımda, GlobalVariables ve PageVariables adlı iki sözlük vardı. Yeni bir sayfa oluşturduğumuzda Global temizlenemedi, ancak PageVariables idi.