簡體   English   中英

Backbone.js訪問另一個視圖函數

[英]Backbone.js accessing another view function

我正在使用Backbone.js開發一個應用程序

我有2個視圖,我想使用在其他視圖中定義的函數:

var FormView = Backbone.View.extend({
  initialize: function(){
    resultsView.myFunction();
  }

})


var resultsView = Backbone.View.extend({
  myFunction: function(){
    alert('test')
  }
})

我怎么能這樣做?

你正在以相反的方式做到這一點。 您可以執行其他視圖可以擴展和實現的base view ,例如:

/** Any Views that inherit from this View can use the myFunction() */
var BaseView = Backbone.View ({
  myFunction : function(param) {
      alert(param);
  }
});

/** Inherit from the base view above */
var ChildView = BaseView.extend({
  initialize : function(){
      this.myFunction('test');
  }
});

var instanceView = new ChildView({});

為什么不使用活動?

路由和該事件匯聚器協調

當您使用Backbone.View.extend ,您正在創建一個class 要使用該類,您需要使用new運算符創建instance 通常使用大寫字母和帶小寫字母的實例變量名稱來啟動類名,因此我將在以下示例中使用該命名約定:

//declare view class
var ResultsView = Backbone.View.extend({
  myFunction: function(){
    alert('test')
  }
});

創建類的實例,並將其傳遞給FormView

var resultsView = new ResultsView();
var formView = new FormView({ resultsView: resultsView });

訪問FormView.initialize傳遞的參數:

var FormView = Backbone.View.extend({
  initialize: function(options){
    options.resultsView.myFunction();
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM