0

ngMap を使用して、マーカー付きのマップを表示しています。ユーザーがマーカーをクリックしたときに、ユーザーを URL にリダイレクトしたいと考えています。この URL を作成するには、繰り返しから一意の ID が必要です。

私はこれを持っています。

<marker ng-repeat="position in ctrl.positions" position="{{position.x}}, {{position.y}}" on-click="ctrl.goto(ctrl.id)"></marker>

私のコントローラーには

vm.clickRedirect = function(pId) {
    console.log(pId);
}

オブジェクトと実際の ID (ctrl.id) を返すだけです。どうすればこれを達成できますか?

4

2 に答える 2

3

on-clickイベント置換関数を介してオブジェクト識別子をパラメータとして渡すclickRedirectには:

vm.clickRedirect = function(event,pId) {
    console.log(pId); 
}

実施例

angular.module('mapApp', ['ngMap'])
    .controller('mapCtrl', function ($scope, NgMap) {


        NgMap.getMap().then(function (map) {
            $scope.map = map;
        });
        $scope.cities = [
            { id: 1, name: 'Oslo', pos: [59.923043, 10.752839] },
            { id: 2, name: 'Stockholm', pos: [59.339025, 18.065818] },
            { id: 3, name: 'Copenhagen', pos: [55.675507, 12.574227] },
            { id: 4, name: 'Berlin', pos: [52.521248, 13.399038] },
            { id: 5, name: 'Paris', pos: [48.856127, 2.346525] }
        ];

        $scope.showInfo = function (event,id) {
              $scope.selectedCity = $scope.cities.filter(function(c){
                  return c.id === id;  
              })[0]; 
        };
    });
<script src="https://code.angularjs.org/1.4.8/angular.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key="></script>
<script src="https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.js"></script>

<div ng-app="mapApp" ng-controller="mapCtrl">
        <div>Selected city: {{selectedCity}}</div>
        <ng-map zoom="4" center="59.339025, 18.065818">            
            <marker ng-repeat="c in cities" position="{{c.pos}}" title="{{c.name}}" id="{{c.id}}" on-click="showInfo(c.id)">
            </marker>
        </ng-map>
</div>

于 2016-10-03T08:18:19.257 に答える
0

オンクリックは、次のように評価するために角度式を使用する必要がある角度式ではありませんctrl.id
:{{ctrl.id}}
または、使用するつもりでしたng-clickか?

于 2016-03-03T20:01:08.157 に答える