2013-05-15 8 views
0

Bonjour, Je suis en train de faire une application simple pour montrer la carte de dépliant avec météore.Utilisation du dépliant avec Meteor

Cet exemple simple ne fonctionne pas

testApp.html:

<head> 
    <title>testApp</title> 
</head> 

<body> 
    <h1>Hello World!</h1> 
    <div id="map"></div> 
</body> 

testApp.js

if (Meteor.isClient) { 
var map = L.map('map').setView([51.505, -0.09], 13); 
    var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; 
    var osmAttrib='Map data © OpenStreetMap contributors'; 
    var osm = new L.TileLayer(osmUrl, {minZoom: 8, maxZoom: 12, attribution: osmAttrib}); 
    map.setView(new L.LatLng(51.3, 0.7),9); 
    map.addLayer(osm); 

} 

if (Meteor.isServer) { 
    Meteor.startup(function() { 
    // code to run on server at startup 
    }); 
} 

Il me donne Uncaught TypeError: Cannot read property '_leaflet' of null

si j'écris le même code la console, la carte montre.

Merci pour votre aide

Répondre

3

vous devez mettre votre carte code de rendu dans un rappel qui sera exécuté quand est rendu modèle

Template.nameofyourtemplate.rendered = function() { //map code } 

Enveloppez votre carte div comme ci-dessous

<template name='nameofyourtemplate'> 
{{#constant}} 
    <div id='map'></> 
{{/constant}} 
<template> 

modèle de carte séparée du corps HTML

<body> 
<{{> nameofyourtemplate>}} 
</body> 
+0

Il a fonctionné! merci pour l'explication –

+1

{{#constant}} est dépréciée – Chromos

0

Vous devez envelopper votre carte div comme ci-dessous

{{#constant}} 
    <div id="map"></div> 
{{/constant}} 
+0

Nope, toujours la même erreur –