2012-05-05 13 views
9

Mi chiedo se esiste un modo per passare parametri a requireJS con il parametro data-main.Parametri a main con requireJS e data-main

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

posso introdurre globali:

<script> 
    var mainId = "Main"; 
    var mainTarget = "body"; 
</script> 
<script data-main="Main" src="lib/require/require.js"></script> 

ma mi chiedevo se ci fosse un modo più pulito per farlo. Grazie!

EDIT:

Simon, questo è un grande piano credo che per il valore mainTarget.

require([ 
    'plugins/load!./'+mainId+'.htm', 
    'plugins/load!./'+mainId+'.css' 
],function(html,css){ 
    var Main = function(){ 
     this.__proto__ = mainTarget; 
    } 
    new Main(); 
} 

Come si applica a mainId?

+0

possibile duplicato di [Come caricare modelli bootstrap in Backbone.js durante l'utilizzo di AMD (require.js)] (http://stackoverflow.com/questions/9916073/how-to-load-bootstrapped-models-in-backbone-js-while-using-amd-require-js) –

risposta

15

Un modo per raggiungere questo obiettivo è quello di creare un modulo globale o comune e basta usare come una dipendenza:

global.js

define({ 
    foo: 'test', 
    bar: 'red' 
}); 

Utilizzando il globale:

require(['global'], function(global) { 
    console.log(global.foo) // 'test' 
}); 

Questo si basa sulle proprietà globali dell'oggetto che si trovano all'interno di un file JS. È anche un modello comune per l'output di dati dal lato server in un oggetto JS nella pagina HTML. Per fare ciò basta dare un nome al tuo modulo.

<head> 
    <script> 
     define('global', { 
      mainId: 'Main', 
      mainTarget: 'body' 
     }) 
    </script> 
</head> 

main.js

require(['global'], function(global) { 
    console.log(global.mainId) // 'Main' 
}); 

Se si definisce un modulo che ha bisogno di una proprietà globale, è sufficiente impostare il modulo global come una dipendenza.

È anche possibile utilizzare l'opzione di configurazione priority per assicurare il vostro modulo globale viene caricato prima di ogni cosa - http://requirejs.org/docs/api.html#config

Problemi correlati