2012-02-18 34 views
5

Tôi hoàn toàn mới với ExtJS và javascript framework, và đây là một câu hỏi đơn giản nhưng tôi không thể tìm thấy một ví dụ.Truyền tham số ban đầu cho ứng dụng ExtJS 4

tôi đang cố gắng để tìm hiểu làm thế nào tôi chỉ đơn giản là phải vượt qua đối số ban đầu từ trang html lưu trữ đến một ứng dụng ExtJS 4 - những gì là ExtJS 4 tương đương với dòng rất khiêm tốn này trong trang html lưu trữ của ứng dụng:

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

Mọi thứ tôi thấy lại: các ví dụ trực tuyến không chuyển đối số ban đầu cho ứng dụng khi khởi động. Đó không phải là ý tưởng đúng hay gì đó sao…?

Trả lời

0

Tôi thường tạo các biến toàn cầu trên trang và sau đó chỉ sử dụng chúng trong js. Một cái gì đó như:

//mypage.html 

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

Sau đó, tôi sử dụng chúng trực tiếp nơi tôi cần.

//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); 
      } 
     }); 

Có lẽ đó là một ý tưởng tốt để thu thập tất cả các biến này vào một đối tượng toàn cầu, như:

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

Vì vậy, bạn sẽ có một điểm mấu chốt để dữ liệu toàn cầu của bạn.

Nó chỉ là cách tôi làm điều này, tốt đẹp để nghe như thế nào khác.

0

Bạn có thể sử dụng một tập tin cấu hình singleton trong app/Configuration.js, nơi u xác định tất cả các biến, các url để truy cập toàn cầu:

Ext.define('myApp.Configuration', { 
     singleton : true, 
     urls : { actionURL : /d.php, bgotUrl :abcd.php } 
}); 

bây giờ bạn cần phải yêu cầu tập tin này trong tập tin Application.js như yêu cầu: [ 'myApp.Configuration'] để tải nó trước cho việc sử dụng trong các tập tin khác như:

myApp.Configuration.urls.actionURL

vì vậy, tôi đoán giải pháp rất sạch sẽ cho các thiết lập rộng ứng dụng của bạn. Chúc mừng!

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