0
我想在Template.foo.rendered中只運行一次代碼。我有一個Leaflet地圖和一個集成的定位控制插件。它迄今爲止效果很好,但似乎渲染的模板經常重新運行。因此,我的標記用於在地圖上定位用戶每隔幾秒就會重置一次。我只想初始化一次。只運行一次meteor.js代碼
var map, mapInit;
map = void 0;
mapInit = function (element){
map = L.mapbox.map(element, 'examples.map-20v6611k').setView(new L.LatLng(52.02312,13.02627), 11);
L.control.locate({drawCircle: true, position: 'topright'}).addTo(map);
}
Template.map.rendered = function() {
$(window).resize(function() {
var h = $(window).height();
$mc = $('#map');
$mc.css('height', h);
}).resize();
if (!this.rendered) {
mapInit('map');
this.rendered = true;
}
}
thx爲您的答案,但我不太清楚如何做到這一點。如果我嘗試測試map.domElements – Chromos 2014-10-27 11:26:25
@Chromos:檢查我的更新嗎? – 2014-10-27 11:45:54
我做了但我得到「Map.domElements是未定義的」。 – Chromos 2014-10-27 11:53:52