Backbone命名空间打开视图

时间:2017-02-03 07:17:56

标签: javascript jquery backbone.js marionette

我希望有人能给我一些有用的提示。

app.js

;(function(app){

'use strict';

app.on('start', function(){
     var view = new app.base.base_documents.views.DokumentenView();
     view.render();
});

})(window.app);

是否有更短更好的方法来编写以下代码

var view = new app.base.base_documents.views.CustomView();
view.render();

也许有办法像这样调用我的观点:

var view = CustomView();
view.render() 

我的观点.js

;(function(app){

'use strict';

app.module('base.base_documents.views', function (module, App, Backbone, Marionette) {


    module.CustomView = Marionette.CompositeView.extend({
    ...
    });
}(app));

1 个答案:

答案 0 :(得分:1)

根据您的观点保存位置(命名空间),您可以将app.base.base_documents.views传递给IIFE:

;(function(app, views){

  'use strict';

  app.on('start', function(){
       var view = new views.DokumentenView();
       view.render();
  });
})(window.app, window.app.base.base_documents.views);

但是您可能在其他嵌套命名空间中有视图,因此对于那些您需要执行相同操作的视图 - 这最终会给出类似的结果。您可以在渲染视图时逐步执行命名空间,也可以在传递参数时执行此操作。