Mam widoku szkieletową, która wzywa do sub-widzenia:uzyskiwania dostępu do właściwości szkieletu Parent View
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() {
}
});
Oto sub-view:
lr.EventView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, "render");
console.log(lr.MapView.foo); // will console.log 'undefined'
},
render: function() {
}
});
Chciałbym móc aby uzyskać dostęp do właściwości widoku rodzica w podglądzie, ale nie działa z powyższym kodem. Na przykład, w jaki sposób mogę uzyskać dostęp do zmiennej "foo" w podglądzie?
Wspaniała odpowiedź, dziękuję. Dlaczego metoda metody dostępowej jest lepsza niż inna alternatywa, o której wspomniałeś? – AdamVickers
@AdamVickers: Obecność accessora sygnalizuje światu zewnętrznemu, że 'foo()' jest częścią publicznego interfejsu MapView, a brak mutatora wskazuje, że osoby postronne nie powinny go zmieniać. –