tôi có một cái nhìn xương sống mà các cuộc gọi đến một tiểu-view:Thuộc tính truy cập của Backbone Chánh Xem
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() {
}
});
Đây là sub-view:
lr.EventView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, "render");
console.log(lr.MapView.foo); // will console.log 'undefined'
},
render: function() {
}
});
Tôi muốn để có thể để truy cập các thuộc tính chế độ xem cha mẹ trong chế độ xem phụ nhưng không hoạt động với mã ở trên. Ví dụ, làm thế nào tôi có thể truy cập biến 'foo' trong chế độ xem phụ?
Câu trả lời tuyệt vời, cảm ơn bạn. Tại sao phương pháp tiếp cận phương pháp tiếp cận thích hợp với phương án thay thế khác mà bạn đề cập? – AdamVickers
@AdamVickers: Sự hiện diện của một tín hiệu truy nhập tới thế giới bên ngoài mà 'foo()' là một phần của giao diện công khai của MapView và việc thiếu một mutator chỉ ra rằng người ngoài không phải thay đổi nó. –