InfoWindowをInfoBoxに交換し、 MarkerClustersを追加するために、AngularUI の uiMap ディレクティブをフォークしました。uiMap -> icMap; に大規模な更新を行いました。最も顕著なのは、コントローラからディレクティブ ロジックを移動して、uiMap を「マスター」ディレクティブにしたことです)。ネイティブの MapMarker をクリックしてもインフォボックスが開かないことを除いて、ほとんどすべてが機能しています。
その理由は、クリック イベントをネイティブ MapMarker ( ic-map.js:163 ) に適切にバインドしていないためだと思います。
uiMap を再編成する前に、 map.jsicMapInfoBox
にディレクティブを追加しただけです。そのオープンイベントは、次によって登録/トリガーされました。
ui-event="{'map-click':'openMarkerInfo(marker)'}"
コントローラーで定義されたopenMarkerInfo()を呼び出しました (私のレポからコピー/貼り付け: GitHub Gist )。
ただし、ネイティブ MapMarker をクリックしても何も起こらず、コンソールにエラーも表示されません (ただし、他のすべてのイベントは引き続き適切に発生します)。
元のプランク
簡素化されたプランク(MarkerClusters を削除)
両方のプランクで、問題はおそらく ic-map.js (リストの最初のファイル) にあります
map.jsonはデータ ファイル
angular.js、angular-ui.js、およびinfobox.jsは lib ファイルです。
編集InfoBox.map
私はそれが気づいたundefined
; それが問題と関係があると思います。
編集未定義の InfoBox.map プロパティが問題の一部でした: ic-map.js:189 での InfoBox.openへの手動呼び出しは機能します (テンプレートはコンパイルされていませんが、それは別の問題です)。InfoBox.openをトリガーしません。また、テンプレートは含まれていません。
marker
解決済み: js オブジェクトではなく DOM オブジェクトを扱っていました。すぐに解決策を投稿します。