Tengo una visión columna vertebral que llama a un sub-vista:Acceso a Propiedades de la espina dorsal de Padres Ver
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() {
}
});
Aquí está la sub-vista:
lr.EventView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, "render");
console.log(lr.MapView.foo); // will console.log 'undefined'
},
render: function() {
}
});
me gustaría poder para acceder a las propiedades de la vista principal dentro de la subvista, pero no funciona con el código anterior. Por ejemplo, ¿cómo puedo acceder a la variable 'foo' dentro de la subvista?
Maravillosa respuesta, gracias. ¿Por qué el método de acceso es preferible a la otra alternativa que mencionas? – AdamVickers
@ AdamVickers: La presencia de un descriptor de acceso indica al mundo exterior que 'foo()' es parte de la interfaz pública de MapView y la falta de un mutador indica que no se supone que los extraños lo cambien. –