Je travaille sur une vue de feuillet pour Emberjs, et j'ai des problèmes. La notice est une bibliothèque externe et un peu pertinente pour la question, mais sachez simplement que c'est une bibliothèque de mappage. P>
Considérez une propriété simple comme le niveau de zoom. Les instances de la feuille de dépliant ont un niveau de zoom accessible via J'aimerais que ma vision de «bracelet Ember» ait un Qu'est-ce que j'ai actuellement est une sous-classe de Ember.View, avec une propriété Zoomlevel. Sur map.getzoom () code> et assignable via
map.setzoom (zoomlevel) code>. En outre, les utilisateurs peuvent interagir avec la carte et changer son niveau de zoom. Leaflet nous permet de Enregistrer un rappel lorsque le zoom change. P>
Zoomlevel code> Ember Propriété. De cette façon, je peux bénéficier du modèle d'objet Ember (Bind
zoomlevel code> à un modèle ou à une autre valeur, par exemple), et nous le faisons "The Ember Way". P>
Solution de base h2>
didinsertelement code> i crée l'instance de la feuille de la feuille. Le code est commenté et devrait être auto-explicite. P>
App.Leaflet = Ember.View.extend({
classNames : ['ember-leaflet'],
//default zoom level
zoomLevel : 13,
didInsertElement : function() {
var self = this;
var zoomLevel = this.get('zoomLevel');
// create map instance
var map = L.map(this.$().get(0)).setView(center, zoomLevel);
// configure map instance...
// Event listeners
map.on('zoomend', function(e) {
self.set('zoomLevel', e.target.getZoom());
});
// save map instance
this.set('map', map);
}
});
3 Réponses :
Pour aller de zoomlevel dans Ember pour setzoom Vous pouvez utiliser un observateur. P>
Pour aller dans l'autre sens, vous devrez peut-être lier un événement pour zoomchanger sur la notice p>
Oui, c'était ma première tentative. Problème: Lorsque je défini zoomlevel code> sur l'événement code> zoomend code>, je déclenche automatiquement mon observateur. Est-ce que je me suis fait clairement?
OK, je pense que je le faisais.
J'ai utilisé une propriété calculée et une propriété auxiliaire. p> essentiellement, il y a deux scénarios: p> Cependant, j'ai un nouveau problème, mais je pense que c'est un dépliant liée. Lorsque j'appelle finit dans le niveau peut-être une notice liée à la question peut aider . p> p>
setzoom code> lorsqu'une autre animation de zoom sur le parcours, cette SETZOOM est ignorée.
Par exemple, exécution: p>
1 code> Le niveau de zoom. P>
Cela s'est retrouvé dans un projet appelé Ember-Leaflet: MIGUELCOBAIN.GITUB.IO/ember-leaflele Les contributions sont les bienvenues!
Votre lien est cassé. Voici le bon: Leaflet Ember . Excellent travail au fait!
Merci! Ce projet n'est plus maintenu. Moi et certains autres développeurs ont commencé une autre ici: github.com/gabesmed/emberafleaflet it est beaucoup plus «Ember Way», plus structuré, avec des tests, etc. Je suis sûr que cela conviendra mieux à vos besoins. :)
Avec une stratégie différente différente, j'ai fabriqué une propriété de zoomlevel et l'observe à partir d'une fonction et définit uniquement le zoom sur la carte si la valeur réelle de la propriété est différente du zoom réel.
Voir ce violon http://jsfiddle.net/5as2z/30/
J'ai passé la logique à un contrôleur, la vue définit la carte lorsqu'il est inséré dans le document html p>