私は別の機能を提供するフレームワーク(流星ですが、私が推測する質問には関係ありません)を使用しています..
私の問題は、これらの関数間でアクセスできるようにするために、ますます多くのグローバル変数を使用していることに気づきました。たとえば、マップオブジェクト:
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 の代替手段がありますか?
編集回答ありがとうございます。たとえば、言及したパターンの 1 つを使用して、私のコードに基づいたコードの例を追加していただけますか? このように、私はそれをよりよく理解することができました。