2012-05-05 14 views
9

Zastanawiam się, czy istnieje sposób przekazywania parametrów do requireJS z parametrem głównym danych.Parametry główne z requireJS i danymi-głównymi

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

mogę wprowadzić globalne:

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

ale zastanawiałem się, czy nie było czystsze sposób to zrobić. Dzięki!

EDIT:

Simon, jest to wielki plan myślę o wartości mainTarget.

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

Jak zastosować to do głównej pozycji?

+0

możliwe duplikat [Jak załadować bootstrapped modeli backbone.js podczas korzystania AMD (require.js)] (http://stackoverflow.com/questions/9916073/how-to-load-bootstrapped-models-in-backbone-js-while-using-amd-require-js) –

Odpowiedz

15

Jednym ze sposobów osiągnięcia tego celu jest stworzenie modułu globalnego lub wspólnego i po prostu użyć go jako zależność:

global.js

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

Korzystanie globalny:

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

Jest to zależne od globalnych właściwości obiektu przechowywanych w pliku JS. Jest to również typowy wzorzec do przesyłania danych ze strony serwera do obiektu JS na stronie HTML. Aby to zrobić, po prostu nadaj modułowi nazwę.

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

main.js

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

Jeśli zdefiniować moduł, który potrzebuje własności globalne, wystarczy ustawić moduł global jako zależność.

Można także użyć opcji priority konfiguracji, aby zapewnić globalny moduł jest załadowany zanim cokolwiek innego - http://requirejs.org/docs/api.html#config

Powiązane problemy