这个问题是关于angularjs-google-maps,https://github.com/allenhwkim/angularjs-google-maps
有没有办法在标记上使用ng-click来设置这样的变量?(出于测试目的,1的值是硬编码的)。点击该标记目前似乎不会触发ng-click。
<marker ng-repeat="instance in common.instances"
position="[{{instance.lat}},{{instance.lng}}]"
ng-click="common.selectedinstance = 1">
</marker>发布于 2014-06-30 02:56:32
从他们的文档https://developers.google.com/maps/documentation/javascript/events中,
用户事件(比如“单击”鼠标事件)从DOM传播到Google Maps API。这些事件是独立于标准DOM事件的和不同的。
据我所知,只有谷歌地图事件可以应用于谷歌地图对象,包括标记,形状等。
这是个坏消息。
好消息是您仍然可以使用on-click event来操作$scope变量和事件。只要你对这个事件使用一个函数,就没有太大的区别。
我将继续调查是否有解决方法,这样我们就可以使用AngularJS事件进入(即ngMouseenger,ngMouseleave。ngMouseup、ngClick等
一个使用on-click的工作示例位于plunkr,以满足您的需求。
http://plnkr.co/edit/6qvS0vUYkqVHZ3t6qmn2?p=preview
这是脚本部分
$scope.myVar = 1;
$scope.changeMyVar = function(event) {
$scope.myVar+=1;
$scope.$apply();
}这是html部分
<map zoom="11" center="[40.74, -74.18]">
<marker ng-repeat="p in positions"
position="{{p}}" title="{{p.toString()}}"
on-click="changeMyVar()">
</marker>
</map>
myVar : {{myVar}} Click a marker to increase myVar要了解有关angularjs-google-map事件的更多信息,请查看the example about event
发布于 2016-03-12 05:19:29
我使用下面的代码来获取点击标记的纬度和经度。
Html:
<ng-map zoom="12" center="{{vm.geoCenterLoc}}" style="height:500px">
<marker ng-repeat="p in vm.positions"
position="{{p.pos}}"
data="{{data[$index]}}"
on-click="myFunc($event)";
title="pos: {{p.pos}}"></marker>
</ng-map>Javascript(在我的控制器上):
$scope.myFunc = function (evt) {
markerPosObj = {
pos: [this.getPosition().lat(), this.getPosition().lng()]
};
markerPos = [];
markerPos.push(markerPosObj);
console.log('this marker', markerPos);
}https://stackoverflow.com/questions/24477634
复制相似问题