在骨干js中调用第二个js文件的渲染方法

时间:2013-01-25 13:58:35

标签: backbone.js

我有两个不同的骨干js文件,用于2个不同的视图。我需要从第一个js文件中调用第二个js文件的render方法。我怎么能这样做

我有一个backbone.js文件,它作为一个名为DocumentsPageView的视图。在我的第二个主干js文件中,当我点击第一个js文件上的按钮时,我必须调用DocumentsPageview的render方法

第一个js文件

first.backbonejs = (function($) {
    case myapp  
        sectionView = new second.mysecondbackbone.DocumentsPageView();
        sectionView.render();
        break;
    }
}(jQuery)

第二个js文件

second.mysecondbackbone = (function($) {
    var DocumentsPageView= Backbone.View.extend({
        render: function(){
            //render the page
        }
    });
}(jQuery)

我在声明部分

中未定义对象

谢谢&问候 Ashik

1 个答案:

答案 0 :(得分:0)

我的建议是,不要。

使用介于两者之间的介体对象,并控制使用两个视图的过程。

可以这么简单:

myProcess = {

  show: function(){
    var view1 = new View1();
    view1.on("foo", this.doMoreStuff, this);
    this.showView(view1);
  },

  doMoreStuff: function(){
    var view2 = new View2();
    this.showView(view2);
  },

  showView: function(view){
    // code to stuff view.$el in to the DOM
  }

}

这里的优势在于您拥有一个高级工作流,可以自行管理和维护,与各个视图的实现细节分开。您无需追踪各个视图即可查看它们如何协同工作。

我在这里写了更多关于此的内容:http://lostechies.com/derickbailey/2012/05/10/modeling-explicit-workflow-with-code-in-javascript-and-backbone-apps/