Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何使用RequireJS从模块加载主干视图?_Backbone.js_Requirejs - Fatal编程技术网

Backbone.js 如何使用RequireJS从模块加载主干视图?

Backbone.js 如何使用RequireJS从模块加载主干视图?,backbone.js,requirejs,Backbone.js,Requirejs,define(['jquery'、'FrameworkView/BackbonePrototype'、'applicationPath/Module1/js/views/AppView1'、'applicationPath/Module2/js/views/AppView2'], 函数($,BackbonePrototype,AppView1,AppView2){ 函数GetView(模块,类型){ var views=新数组(); 对于(变量i=0;i

define(['jquery'、'FrameworkView/BackbonePrototype'、'applicationPath/Module1/js/views/AppView1'、'applicationPath/Module2/js/views/AppView2'],
函数($,BackbonePrototype,AppView1,AppView2){
函数GetView(模块,类型){
var views=新数组();
对于(变量i=0;i

我们正在开发一个具有主干和RequireJS的项目。我们的项目基于框架和模块体系结构。这些模块有助于 主干视图(AppView1/AppView2等),并由框架使用如上所示的RequireJS动态加载 如果添加了新模块(例如Module3),则需要再次修改上述框架代码,以将Module3视图添加到定义块中。
有没有办法避免框架中的此类更改以及如何获取对新添加的模块视图的引用?

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

关于你的问题,我想你会在这里找到你需要的一切

这两种解决方案都适合你

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;
  }
});