2012-02-18 29 views
5

Kesinlikle ExtJS ve javascript çerçevelerinde yeniyim, ve bu son derece basit bir soru ama ben bir örnek bulamıyorum.İlk parametreleri bir ExtJS 4 uygulamasına geçirme

Ben sadece bir ExtJS 4 uygulamasına barındıran html sayfasından ilk argümanları geçmelidir öğrenmek için çalışıyorum - budur uygulamanın barındıran html sayfası bu çok mütevazı hattının ExtJS 4 eşdeğeri:

var myapp = new MyApp({param1:'value1', param2:'value2'}); 

Yeniden gördüğüm her şey: Örnekler çevrimiçi başlatıldığında başlangıçtaki uygulamalara argümanları aktarmıyor. Bu doğru bir fikir değil mi ..?

cevap

0

Genellikle sayfada global değişkenler oluyorum ve sonra bunları js olarak kullanıyorum. gibi şey: Ben gereken yere

//mypage.html 

<script type="text/javascript"> 
     var loadScansUrl = "<%=Url.Action<ReportScannerRunController>(controller => controller.LoadScans())%>"; 
     var loadInstancesUrl = "<%=Url.Action<ReportScannerRunController>(controller => controller.LoadInstances(-1))%>"; 
</script> 

Sonra bunları doğrudan kullanmak. Dolayısıyla bunu küresel verilere tek giriş noktası olacak

var globalVariables = {}; 
globalVariables.someVariable = 2; 

:

//myfile.js 

Ext.Ajax.request({ 
      url: loadInstancesUrl, // here is the usage!!! 
      headers: { 
       'Content-Type': 'application/json' 
      }, 
      params: this.scanId, 
      scope: this, 
      success: function (response) { 
       var result = Ext.decode(response.responseText); 
       var comboData = []; 
       Ext.each(result.Instances, function (instance) { 
        comboData.push({ Value: instance }); 
       }); 
       instances.store.loadData(comboData); 
      } 
     }); 

Belki de olduğu gibi, tek bir küresel nesnesine tüm bu değişkenleri toplamak için iyi bir fikirdir.

Sadece bunu yaptığım gibi, başkalarının nasıl olduğunu duymak güzel.

0

Sen u küresel erişim için tüm değişkenleri, URL'ler tanımlamak uygulaması/Configuration.js, bir tekil Yapılandırma dosyasını kullanabilirsiniz:

Ext.define('myApp.Configuration', { 
     singleton : true, 
     urls : { actionURL : /d.php, bgotUrl :abcd.php } 
}); 
şimdi application.js dosyasında bu dosyayı olarak ihtiyaç gerekir

gerektirir: [ 'myApp.Configuration'] gibi diğer dosyalarda kullanım için şimdiden yüklemek için:

Yani, başvurunuzun geniş ayarları için çok temiz bir çözüm tahmin

myApp.Configuration.urls.actionURL. Şerefe!

İlgili konular