0

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

我有一个名为 DocumentsPageView 的主干.js 文件。在我的第二个主干 js 文件中,当我单击第一个 js 文件上的按钮时,我必须调用 DocumentsPageview 的渲染方法

第一个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)

我在声明部分得到对象未定义

感谢和问候阿希克

4

1 回答 1

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/

于 2013-01-25T14:04:31.573 回答