2011-12-10 34 views
37

Tôi chỉ mới bắt đầu với require.js. Tôi đã gói thành công jquery, một số plugin và một vài mô-đun của riêng tôi. Tôi đang cố gắng tương tác với các mô-đun của tôi (hoặc jquery) từ Firebug (hoặc bảng điều khiển JS của Google Chrome) và tôi không có nhiều may mắn.Tương tác với mô-đun require.js từ bảng điều khiển Firebug/Chrome?

Cách chính xác để truy cập các mô-đun này từ bảng điều khiển là gì?

Trả lời

52

Giả sử chúng ta có /app/scripts/methodsModule.js mô-đun mà trả về một vài phương pháp:

define({ 
    someMethod: function() { 
     // do stuff 
    }, 
    anotherMethod: function() { 
     // do some more stuff 
    } 
}); 

Trong /app/scripts/main.js tập tin dữ liệu chính của chúng tôi, chúng tôi có:

require(['methodsModule'], function(methods) { 
    methods.someMethod() // call someMethod 
    methods.anotherMethod() // call anotherMethod 
}) 

Khi requireJS tải lên dữ liệu chính của chúng ta, chúng ta có thể truy cập vào bất kỳ các module đã được nạp bởi requireJS từ dòng lệnh console javascript như sau:

>> methods = require('methodsModule'); // requireJS has module methodsModule stored 
>> methods.someMethod() // call someMethod 
>> methods.anotherMethod() // call anotherMethod 

Nếu một module chưa được nạp bởi một cuộc gọi đến yêu cầu() hoặc xác định(), chúng ta phải vượt qua callback riêng của mình cho các chức năng yêu cầu để gọi sau khi các mô-đun đã được tải:

>> myCB = function(methods) { methods.someMethod() } 
>> require(['methodsModule'], myCB) 

Nếu không , requireJS ném lỗi nói rằng mô-đun chưa được tải ..

+1

làm điều này làm việc với requireJS "tối ưu hóa" kịch bản? Có lẽ tôi đang làm điều gì đó sai ở đây, nhưng nó dường như không làm việc cho tôi. – Stephen

+0

Vẫn còn hiệu lực kể từ ngày 20/05/2015. Khi chuyển đổi dự án "nguyên thủy" sang AMD, tôi cần đảm bảo rằng mọi thứ đang hoạt động. Tuy nhiên, tôi không thể xác định vị trí của đối tượng mô-đun được trả về sau khi xác định được thực hiện. Lời giải thích tuyệt vời. –

12

Có cách mà không sử dụng gọi lại.

Nếu bạn mô-đun không cần thiết trong giao diện điều khiển hoặc bạn ứng dụng trước đây, bạn chỉ có thể yêu cầu nó đầu tiên:

require(['methodsModule']); 

sau đó bạn có thể sử dụng "năng động" yêu cầu để truy cập vào nó:

require('methodsModule').someMethod(); 
+0

Điều đó thực sự dễ dàng hơn những gì tôi đang thử, '+ 0.1E1'. Tôi thích chỉ cần tải các mô-đun vào cửa sổ để truy cập dễ dàng mặc dù. 'require ([m = 'lib/imagesloaded']); imagesLoaded = require (m); ' – Orwellophile

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