2013-03-03 28 views
6

Chúng tôi đang sử dụng requirejs lần đầu tiên và tôi gặp sự cố khi cấu trúc các phụ thuộc của mình.Yêu cầu - Định cấu hình yêu cầu trước khi tải dữ liệu chính

tôi đã xác định tập tin app.js chính của tôi là thuộc tính dữ liệu chính trong index.html của tôi:

<script data-main="src/app" src="/js/lib/require/require.js"></script> 

Nhưng, tôi có một tập tin trong đó xác định tất cả của tôi yêu cầu cấu hình path/shim, và Tôi muốn điều đó chạy trước tệp app.js. Tôi cần nó để chạy để tôi có thể tham chiếu đường dẫn được định cấu hình như phụ thuộc trong app.js.

Tôi không nghĩ đúng cách là đặt config.js làm dữ liệu chính. tôi đã cố gắng thiết lập các config.js như một sự phụ thuộc như thế này:

<script type="text/javascript"> 
     var require = { 
      baseUrl: "/", 
      deps: ["src/config"] 
     } 
    </script> 
    <!-- data-main is the main js file of the app --> 
    <script data-main="src/app" src="/js/lib/require/require.js"></script> 

nhưng điều đó không giúp đỡ.

Mọi đề xuất?

+2

Hãy thử đặt các tùy chọn cấu hình shim/path trong 'var require = {}' –

Trả lời

4

Trong trường hợp của tôi, tôi tải config.js trong app.js để chia sẻ cấu hình cho mỗi trang.

Ví dụ:

require(['config'], function(){ 
    require(['module','another'], function(){ 
    // run with all modules 
    }); 
}); 

Để tối ưu hóa dự án này, sử dụng has.js là cách tốt hơn để làm giảm kết nối HTTP. Để biết thêm chi tiết, hãy xem this sample project.

+0

Tôi đã làm một điều gì đó rất giống nhau để có hiệu ứng "chuỗi". Tôi đã tạo tệp init.js làm dữ liệu chính của mình và bên trong nó: 'require (['config'], hàm (appConfig) { yêu cầu (['app'], hàm (app) { yêu cầu (['appStart']); }); }); ' ** config ** - giữ cấu hình đường dẫn yêu cầu. ** ứng dụng ** - tạo đối tượng ứng dụng của tôi và một số chức năng khởi tạo khác. ** appStart ** - khởi động ứng dụng. – elanh

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