2013-07-20 30 views
0

我使用需要加载HTML模板,我想通过同步的方式来加载这些,例如:RequireJS:同步requrire文本内容

var template_a = require(["text!template/a.html"], function(template) { return template; }); 
var template_b = require(["text!template/b.html"], function(template) { return template; }); 
var template_c = require(["text!template/c.html"], function(template) { return template; }); 

$("body").append(template_a); 
$("body").append(template_b); 
$("body").append(template_c); 

我怎样才能做到这一点?谢谢!

+0

你想通过这个来实现什么?潜在的好处是什么? – kryger

回答

3

RequireJS在本质上是异步的。克服它的唯一方法是做这样的事情

templates = []; 

function append_template(template, templates) 
{ 
    templates.push(template); 

    if(templates.length == 3) 
    { 
     for(var i in templates) 
      $("body").append(templates[i]); 
    } 
} 

require(["text!template/a.html"], function(template) { 
    append_template(template, templates); 
}); 
require(["text!template/b.html"], function(template) { 
    append_template(template, templates); 
}); 
require(["text!template/c.html"], function(template) { 
    append_template(template, templates); 
}); 
+0

但是,这与在单个“模板appender”模块中要求所有模板并没有什么不同(但更复杂)。 – kryger

+0

@ kryger绝对:)但'为了什么?是不同的问题。 – twil