前提・実現したいこと
monacaを用いてアプリケーションを作成しています。
また、そのなかでOnsenUI,AngularJSを使用しています。
ある地点の座標を含めた情報を取得し、GoogleMapsAPIを利用して
地図上に、画像をマーカーとして表示させています。
そのマーカーをクリックした際に表示されるウィンドウの情報をクリックすると
地点の詳細ページに飛ぶような処理を行いたいです。
以前使用していた場合は<a>タグで飛ばしていたのですが
その方法だとAngularJSでの値が引き継げなくなってしまいました。
どうすれば意図する動きになるのか、また記述しているコードで
考え方が間違っているような箇所はございますでしょうか。
発生している問題
吹き出し内のHTMLにng-clickを入力してもコントローラーの処理が起動しません。
onclickにしてコントローラー外にfunctionを記入すると動くのですが
AngularJSで利用している値を使いたいのでなんとかコントローラー内の処理を起動したいです。
試したこと
このウインドウの中のHTMLがコントローラーと無関係な位置にあるせいでこうなっているのかと思ったので
中にng-controllerを記入してみましたが変わりませんでした。
完全に別のところに書かれたものであり、データを連結させることは難しいのでしょうか。
CSSが機能しているので同じように連携できるのではと考えてはいるのですが、、、。
javascript
1//吹き出しの追加 2infoWindow = new google.maps.InfoWindow({ 3 content: '<div ng-controller="AppController as app"><div class="infoWindowClass" ng-click="hogehoge()">' + '吹き出しに表示する内容' + '</div></div>' 4});
該当のソースコード
javascript
1ons.bootstrap().controller('AppController', ['$scope', function($scope){ 2 //地図の表示 3 $scope.displayMap= function(){ 4 //地図表示 5 var map = new google.maps.Map( 6 document.getElementById('map'), 7 { 8 center: (new google.maps.LatLng(00.0000, 000.0000)), 9 zoom: 18, 10 streetViewControl: false, 11 mapTypeControl: false, 12 fullscreenControl: false, 13 zoomControl: true, 14 zoomControlOptions: false, 15 styles: [{ 16 featureType: 'poi.business', 17 stylers: [{visibility: 'off'}] 18 }] 19 } 20 ); 21 22 //マーカーの設置 23 markerLatLng = {lat:00.0000, lng:000.0000}; 24 marker = new google.maps.Marker({ 25 position: markerLatLng, 26 map: map, 27 icon: new google.maps.MarkerImage( 28 'images/path', 29 new google.maps.Size(50, 50), 30 new google.maps.Point(0, 0), 31 new google.maps.Point(25, 50), 32 new google.maps.Size(50, 50) 33 ), 34 }); 35 36 //吹き出しの追加 37 infoWindow = new google.maps.InfoWindow({ 38 content: '<div class="infoWindowClass" ng-click="hogehoge()">' + '吹き出しに表示する内容' + '</div>' 39 }); 40 41 //クリックイベントの追加 42 marker.addListener('click', function(){ 43 infoWindow.open(map,marker); 44 }); 45 } 46 47 $scope.hogehoge = function(){ 48 //クリックされた際の処理を入力。 49 } 50}]);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。