0

こんにちは、流星でリーフレットマップを表示する簡単なアプリを作成しています。

この単純な例は機能していません

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
  });
}

それは私に与えています Uncaught TypeError: Cannot read property '_leaflet' of null

コンソールに同じコードを書くと、マップが表示されます。

ご協力ありがとうございました

4

2 に答える 2

4

テンプレートがレンダリングされるときに実行されるコールバックにマップ レンダリング コードを配置する必要があります。

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

以下のようにマップ div をラップします

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

マップ テンプレートを HTML 本文から分離する

<body>
 <{{> nameofyourtemplate>}}
</body>
于 2013-05-15T18:37:16.333 に答える
0

以下のようにマップ div をラップする必要があります

{{#constant}}
  <div id="map"></div>
{{/constant}}
于 2013-05-15T18:09:52.670 に答える