2011-12-10 22 views
37

Sadece require.js ile çalışmaya başladım. JQuery, bazı eklentiler ve kendi modüllerimden birkaçını başarıyla tamamladım. Modüllerim (veya jquery) ile Firebug'dan (veya Google Chrome'un JS konsolundan) etkileşim kurmaya çalışıyorum ve fazla şansım yok.Firebug/Chrome konsolundan require.js modülleriyle etkileşim kuruyor musunuz?

Bu modüllere konsoldan erişmenin doğru yolu nedir? verilerimizin-ana dosya /app/scripts/main.js ise

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

Elimizdeki:

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

cevap

52

biz birkaç yöntemler döndüren modül /app/scripts/methodsModule.js var ki

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

kez yükleri yukarı verilerimiz-main requireJS, zaten bu yüzden gibi javascript konsol komut satırından requireJS tarafından yüklenen olan tüm modülleri erişebilir Aksi

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

:

bir modül bir çağrı tarafından yüklenen değilse, biz modülü yüklendikten sonra çağrılacak işlevi gerektiren için kendi geri arama geçmek zorunda) ((gerektiren) ya da tanımlamak için , requireJS modülün henüz yüklenmemiş olduğunu söyleyen bir hata veriyor ..

+1

bu requireJS "optimize" scriptleri ile çalışır? Belki burada yanlış bir şey yapıyorum, ama benim için işe yaramadı. – Stephen

+0

Hala, 05/20/2015 itibarıyla geçerlidir. “İlkel” bir projeyi AMD'ye dönüştürürken, her şeyin işe yaradığını garanti etmem gerekiyordu. Ancak, döndürülen modül nesnesinin yürütüldükten sonra nereye gittiğini belirleyemedim. Harika bir açıklama. –

12

Geri aramalar kullanmanın bir yolu yoktur.

modül konsolunda ihtiyaç duyulmadı veya daha önce size uygulama, sadece ilk bunu gerektirir Eğer

: Eğer "dinamik" kullanabilirsiniz bundan sonra

require(['methodsModule']); 

erişmeye gerektirir:

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

Bu, denediğimden çok daha kolaydı, '+ 0.1E1'. Modülü sadece kolay erişim için pencereye yüklemeyi tercih ederim. '([M = lib/imagesloaded ']) gerektirir; imagesLoaded = (m) gerektirir; ' – Orwellophile