Javascript 在requireJS中使用动态名称时,require如何在所有require上返回相同的文件

Javascript 在requireJS中使用动态名称时,require如何在所有require上返回相同的文件,javascript,dynamic,requirejs,require,Javascript,Dynamic,Requirejs,Require,有点迷路了 我有一个函数,可以检查页面上的模板触发器,当找到时,通过首先要求模板(使用requireJS)然后构建模板来触发模板呈现 我的问题是,我总是请求第一个模板文件,尽管我这样做时: renderTemplateTrigger: function(){ var t = $('.template'), tl = t.length, i, dyn, el, config; if ( tl >

有点迷路了

我有一个函数,可以检查页面上的模板触发器,当找到时,通过首先要求模板(使用
requireJS
)然后构建模板来触发模板呈现

我的问题是,我总是请求第一个模板文件,尽管我这样做时:

renderTemplateTrigger: function(){
    var t = $('.template'),
        tl = t.length,
        i,
        dyn,
        el,
        config;

    if ( tl > 0 ){
        for ( i = 0; i < tl; i+=1 ){
            el = t[i];
            // correct element here
            console.log( el );

            if ( el.getAttribute("val") === null ){
                el.setAttribute("val",true);

                // get and parse configuration info
                config = el.getAttribute("data-config");
                dyn = $.parseJSON( config );
                // correct 
                console.log( dyn );

                // load template WILL ALWAYS LOAD THE SAME FILE
                require(['text!../tx/'+dyn.lib], 
                    function ( lib_template) {
                          // stuff  
                });
            }
        }
    }
}
renderTemplateTrigger:function(){
变量t=$('.template'),
tl=t.长度,
我
戴恩,
埃尔,
配置;
如果(tl>0){
对于(i=0;i
所以当两次迭代中
dyn.lib
等于
listview
controlgroup
时,我需要
listview
listview
,我不知道为什么

问题
为什么我似乎无法使用带有requireJS的动态模板名称加载不同的模板?

请尝试以下操作:

...

dyn.f = function (lib_template)  {
  // stuff
};
require(['text!../tx/'+dyn.lib], dyn.f);

...

controlgroup
的内容并非偶然地与
listview
的内容相同,因此您似乎只需要相同的模板两次?没有。我也检查了:-)问题在于require回调中的
dyn.lib
始终是
listview
,无论我在外部如何设置它。可能与需要异步调用有关?或者缓存?您可以检查dyn吗?-->require调用之外的console.log(JSON.stringify(dyn))是正确的,在回调中总是相同的(=错误,因为它应该包含相应小部件的配置信息)。我想我有一个想法。由于回调中的所有内容都是“过时的”(如果我有10个模板,它可能仍然会一直使用第一个模板dyn),我想我必须只在require调用中触发一个事件,让我知道文件已加载。。。试啊。看起来不错。给我一个圣诞节,让我好好想想,然后再试一次!谢谢好啊我终于明白了。我已经将我所有的模板收集到一个模板中,现在在回调中运行整个函数,这样就不再有异步问题了