L'appel de la fonction de visualisation à partir d'un autre point de vue - Dorsale
J'ai les vues suivantes dans mon application. Fondamentalement, je veux appeler show_house() App.MapView lorsque le li de l'Application.HouseListElemView est cliqué.
Quelle serait la meilleure façon de le faire?
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');
}
});
OriginalL'auteur AlexBrand | 2012-06-14
Vous devez vous connecter pour publier un commentaire.
La maison actuelle est vraiment une partie de votre application globale de l'état de créer un nouveau modèle pour tenir votre application à l'échelle mondiale de l'état:
Alors votre
HouseListElemView
peut répondre aux clics en définissant une valeur dansapp_state
:et puis votre
MapView
simplement à l'écoute de'change:current_house'
événements deapp_state
:Démo: http://jsfiddle.net/ambiguous/sXFLC/1/
Vous pourriez
current_house
à être un modèle réel plutôt que de simplement leid
bien sûr, mais c'est facile.Vous serez probablement en mesure de trouver toutes sortes de d'autres utilisations pour
app_state
une fois que vous l'avez. Vous pouvez même ajouter un peu de REPOS et AJAX et obtenez la persistance de vos paramètres d'application assez bien pour gratuit.Événements sont l'habitude solution à tous les problèmes de la colonne vertébrale et vous pouvez faire des modèles pour tout ce que vous voulez, vous pouvez même temporaires des modèles strictement pour le collage des choses ensemble.
+1. Excuse mon ignorance, mais quelle est la différence entre cette méthode/appstate et l'extension Dorsale.Les événements pour le traditionnel PubSub?
Facile de persistance pour la plupart. PubSub juste achemine les informations autour de et oublie le concernant, d'un modèle, se souvient et rend facile à conserver l'état de votre serveur.
Un grand merci! Ya et de sens de garder vos états d'un objet au lieu de flotter autour de votre code. Modèle intéressant.
Alors, serait-il judicieux d'avoir tous les points de vue hériter d'un maître?
OriginalL'auteur mu is too short