[英]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.