5

InfoWindowInfoBoxに交換し、 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.jsangular-ui.js、およびinfobox.jsは lib ファイルです。

編集InfoBox.map私はそれが気づいたundefined; それが問題と関係があると思います。

編集未定義の InfoBox.map プロパティが問題の一部でした: ic-map.js:189 での InfoBox.openの手動呼び出しは機能します (テンプレートはコンパイルされていませんが、それは別の問題です)。InfoBox.openをトリガーしません。また、テンプレートは含まれていません。

marker解決済み: js オブジェクトではなく DOM オブジェクトを扱っていました。すぐに解決策を投稿します。

4

2 に答える 2

0

依存関係として jQuery を追加する必要があると思います。

ドキュメント化されていない uiMap の jQuery 依存関係

https://github.com/angular-ui/angular-ui/issues/552

于 2013-05-02T19:49:11.273 に答える