我正在尝试访问在视图( StatusView )的呈现函数中声明的对象( this.historyComboBox )并尝试从另一个视图( HistoryView )的 extendedEvents 函数访问同一个对象。 我曾尝试使用 this.historyComboBox 来访问它但无法保存任何引用。真的很困惑。如果有人有不同的想法,我准备尝试一下!
注意:StatusView在HistoryView之前初始化。
以下是代码段。
StatusView = Backbone.View.extend({
init: function() {
//some code
},
render: function() {
this.historyComoBox = new sys.ComboBox();
}
}
HistoryView = Backbone.View.extend({
template: _.template(historyTemplate),
init: function() {
//some code
},
extendedEvents: {
'click #refreshButton': function() {
//want to access historyComoBox; not accessible with 'this.historyComoBox'
}
}
}
答案 0 :(得分:1)
要获取android.support.v4.app
实例的属性,您需要对该实例的引用。所以,如果你有这样的事情:
StatusView
然后从var statusView = new StatusView();
的方法中,你可以这样做:
HistoryView
但是,当可以这样做时,我不会像这样直接访问statusView.historyComboBox;
实例。更好的方法是将其作为参数传递给StatusView
实例,您将在HistoryView
方法中收到该参数。这使得视图松散耦合,
initialize
(我注意到您使用的是名称var HistoryView = Backbone.View.extend({
initialize: function (options) {
this.statusView = options.statusView;
},
events: {
'click #refreshButton': function () {
// use this.statusView;
}
}
});
和init
。您没有提到您使用的是带有Backbone的第三方库或其他可能会改变这些的库,所以我只想提一下,Backbone希望它们分别是extendedEvents
和initialize
。)