2013-04-18 59 views
-1

如何使用RequireJS从模块加载骨干视图?

define(['jquery','frameworkviews/BackbonePrototype','applicationPath/Module1/js/views/AppView1','applicationPath/Module2/js/views/AppView2'], 
function($,BackbonePrototype,AppView1,AppView2){ 
    function getViews(modules,type){ 
    var views= new Array(); 
    for (var i = 0; i < modules.length; ++i) { 
     var cmd = 'views[' + i + '] = new ' + modules[i]+'View.'+modules[i]+type + "View" + '() ;'; 
     eval(cmd); 
     views[i].name = modules[i]; 
    } 
    return views; 
    } 
}); 


我们正在开发骨干和RequireJS项目。我们的项目基于框架和模块架构。模块贡献 骨干视图(AppView1/AppView2等),并由框架使用RequireJS动态加载,如上所示。我们面临的问题是,如果添加了新模块(例如Module3),则 然后上述框架代码需要以修改为将Module3视图添加到define块。 有什么办法可以避免框架中的这种变化,以及如何获得对新添加的模块视图的引用?

回答

0

请勿使用eval。这是邪恶的(没有双关语意图)。
我会认为这不是你真正的代码,因为你不会在这里返回任何东西。

关于你的问题,我想你会在这里找到你需要的一切:Variable function names in Require & Backbone

两种解决方案都适合你。