2016-12-15 6 views
0

Я использую Требовать JS для загрузки файлов и шаблонов поставщиков в JS.Как загрузить несколько файлов шаблонов с помощью requireJs?

Я хочу вызвать одну функцию, когда все связанные шаблоны загружаются на страницу.

В настоящее время мне нужно вложенный позвонить, как показано ниже:

requirejs(['text!templates/stream/leaderboard_m.ejs'], function(Leaderboard_M) 
{ 
     requirejs(['text!templates/stream/leaderboard_tl.ejs'], function(Leaderboard_TL) { 

        loadLeadrboardData(Leaderboard_M, Leaderboard_TL); 

    }); 
}); 

Я хотел бы сделать это в заявлении от 1:

Как я могу сделать это с помощью JS требуется?

+0

почему вы не можете 'требовать ([текст! Мля -blah-first.ejs ',' text! blah-blah-second.ejs], function (first, second) {load (first, second);}); '? – xmike

ответ

0

Взгляните на это:

Это было бы то, что вы хотите:

define([ 
    "./services/MyFirstService", 
    "./services/MySecondService", 
    "./services/MyThirdService", 
], 
function (
    MyFirstService, 
    MySecondService, 
    MyThirdService 
) { 
    // all files loaded and can be used now! 
}); 
0

Вы можете уменьшить его к этому:

requirejs(['text!templates/stream/leaderboard_m.ejs', 
      'text!templates/stream/leaderboard_tl.ejs'], 
      loadLeadrboardData); 

Все элементы в списке передается вызов require (ака. requirejs) загружается до загрузки обратного вызова. И обратный вызов загружается с результатом каждого элемента в списке зависимостей в том же порядке. Таким образом, вы можете напрямую позвонить requirejsloadLeadrboardData.

(я бы ожидать, что функция будет правильно пишется loadLeaderboardData, не loadLeadrboardData с недостающим e, но это по касательной к проблеме спросил здесь.)