Uygulamamda aşağıdaki görünümlerim var. Temel olarak App.HouseListElemView li tıklandığında App.MapView içinde show_house() aramak istiyorum.Başka bir görünümden görünüm işlevi çağırma - Backbone
Bunu yapmanın en iyi yolu ne olurdu? app_state
bir değer ayarlayarak
var AppState = Backbone.Model.extend({ /* maybe something in here, maybe not */ });
var app_state = new AppState;
Sonra HouseListElemView
tıklama yanıt verebilir:
App.HouseListElemView = Backbone.View.extend({
tagName: 'li',
events: {
'click': function() {
// call show_house in App.MapView
}
},
initialize: function() {
this.template = _.template($('#house-list-template').html());
this.render();
},
render: function() {
var html = this.template({model: this.model.toJSON()});
$(this.el).append(html);
},
});
App.MapView = Backbone.View.extend({
el: '.map',
events: {
'list_house_click': 'show_house',
},
initialize: function() {
this.map = new GMaps({
div: this.el,
lat: -12.043333,
lng: -77.028333,
});
App.houseCollection.bind('reset', this.populate_markers, this);
},
populate_markers: function(collection) {
_.each(collection.models, function(house) {
var html = 'hello'
this.map.addMarker({
lat: house.attributes.lat,
lng: house.attributes.lng,
infoWindow: {
content: html,
}
});
}, this);
},
show_house: function() {
console.log('show house');
}
});
güzel .. teşekkürler – AlexBrand
+1. Cehaletimi affedin, ama bu yöntem/appstate ve [Backbone.Events] (http://lostechies.com/derickbailey/2012/04/03/revisiting-the-backbone-event-aggregator-lessons- uzanan arasındaki fark nedir Geleneksel PubSub için öğrendim /)? – TYRONEMICHAEL
@TyroneMichael: Çoğunlukla kolay kalıcılık. PubSub, etrafındaki bilgileri yönlendirir ve unutur, bir model hatırlar ve durumu sunucunuza kalıcı hale getirmeyi kolaylaştırır. –