2011-12-19 10 views
6

SfondoCome caricare gli script prima quando necessario con require.js?

ho una lunga lista di modelli e punti di vista fatti con backbone.js - ma non tutti gli utenti si aprirà tutti i punti di vista. Io uso require.js per caricare file e modelli JavaScripts.

Quello che ho adesso

Ho un router che conosce tutti i punti di vista. Dal momento che il router lo sa, tutte le viste, i modelli e i modelli sono quindi caricati all'avvio - questo carica anche visualizzazioni visitate casualmente.

Problema

Come posso utilizzare require.js per caricare i JavaScript in caso di necessità? Non nell'avvio iniziale, ma quando l'utente apre prima una vista.

UPDATE Ora posso ottenere questo funzionamento come commentato nella risposta di seguito.

Nel router ho un richiedono per tratta:

require(["yourmodule"], function(MyModule){ 
    //... 
}) 

risposta

5

Questa è una grande guida per sposare Backbone.js e Require.js:

http://backbonetutorials.com/organizing-backbone-using-modules/

+0

nel router, si carica il views - will require.js quindi carica il grafico completo del modulo? Una vista ha una collezione, e una collezione richiede di nuovo un modello e così via. Cosa mi piacerebbe sapere se posso caricare il modulo, quando effettivamente ne ho bisogno –

+0

Hai provato qualcosa del genere nel tuo gestore di router? 'require ([" yourmodule "], populateYourView)' –

+0

@IntoTheVoid: Si noti che la versione corrente di jQuery, Underscore e il ramo di Backbone includono il supporto per AMD, quindi l'integrazione con RequireJS è molto più semplice ora. Dai un'occhiata a ** [esempio aggiornato] (https://github.com/thomasdavis/backbonetutorials/tree/gh-pages/examples/modular-backbone-updated) ** sul github di backbonetutorial o controlla un semplice ** [ Modello di progetto backbone] (https://github.com/dzejkej/modular-backbone) **. – kubetz

Problemi correlati