我正在使用一个框架(流星,但我猜的问题并不重要)它提供了单独的功能..
我的问题是我意识到我正在使用越来越多的全局变量以使它们在这些函数之间可访问。例如地图对象:
Meteor.startup(function () {
map = L.map('map_canvas').locate({setView: true, maxZoom: 21});
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
});
我需要到处访问地图来操作我的地图(使用传单)例如:
Template.messages.events({
'click .delete-message': function (e,t) {
e.stopPropagation();
removeItem(e.target.id);
},
'click .message': function (e,t) {
console.log('event clicked');
map.setView([e.target.getAttribute('data-lat'),e.target.getAttribute('data-lng')], 16);
}
});
当我想创建一个我想在不同地方使用的标记对象时,我遇到了同样的问题......
是 Meteor 是以这种方式构建的,还是有更合适/干净的 JS 替代品,而不是让东西全球化?
编辑感谢您的回答,您能否使用例如您提到但基于我的代码的模式之一添加代码示例?这样我可以更好地理解它。