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

时间:2013-04-18 09:25:07

标签: backbone.js 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;
  }
});

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

1 个答案:

答案 0 :(得分:0)

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

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

任何一种解决方案都适合你。