我有一個調用一個子視圖骨幹觀點:訪問屬性
lr.MapView = Backbone.View.extend({
el: $('#map'),
foo: "bar",
initialize: function() {
var that = this;
_.bindAll(this, "render", "addAllEvents", "addOneEvent");
this.collection = new lr.Events();
this.collection.fetch({
success: function(resp) {
that.render();
that.addAllEvents();
}
});
},
addAllEvents: function() {
this.collection.each(this.addOneEvent);
},
addOneEvent: function(e) {
var ev = new lr.EventView({
model: e
});
},
render: function() {
}
});
這裏是子視圖:
lr.EventView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, "render");
console.log(lr.MapView.foo); // will console.log 'undefined'
},
render: function() {
}
});
我希望能夠在子視圖中訪問父視圖的屬性,但它不適用於上述代碼。例如,我如何訪問子視圖中的'foo'變量?
精彩的回答,謝謝。爲什麼訪問器方法比你提到的另一種方法更可取? – AdamVickers 2012-02-13 02:45:52
@AdamVickers:存在一個訪問者向外部世界發出信號:「foo()」是MapView公共接口的一部分,並且缺少一個變異指示外部人不應該改變它。 – 2012-02-13 02:57:01