javascript - ng-click inside ui-gmap-windows 不工作

标签 javascript angularjs google-maps

在 ui-gmap-windows 中的 ng-click 不工作... 这是 codepen 链接 http://codepen.io/aoakeson/pen/ZYLJeyhttp://codepen.io/aoakeson/pen/ZYLJey

关于如何解决这个问题的任何建议....

这是html代码:

<ui-gmap-google-map center='map.center' zoom='map.zoom' draggable="true">
             <ui-gmap-markers models="randomMarkers" coords="'self'" icon="'icon'" click="'onClick'">

                 <ui-gmap-windows show="show" ng-cloak>
                     <div class="lp_tuxtla" >
        <div >
            <a ng-click="nextpage()">click here</a>
            <h3 ng-non-bindable >{{title}}</h3>
            <h4 ng-non-bindable>{{loc}}</h4>
        </div>
        <span class="right_arw"></span>
        <span class="down_arw"></span>
    </div>

          <!--  <div ng-non-bindable >{{title}}</div>-->
        </ui-gmap-windows>

    </ui-gmap-markers>
            </ui-gmap-google-map>

这里是javascript代码:

$scope.map = {center: {latitude: 40.1451, longitude: -99.6680 }, zoom: 4, bounds: {}};
    $scope.options = {scrollwheel: false};
    var createRandomMarker = function (i, bounds, idKey) {
        var lat_min = bounds.southwest.latitude,
            lat_range = bounds.northeast.latitude - lat_min,
            lng_min = bounds.southwest.longitude,
            lng_range = bounds.northeast.longitude - lng_min;

        if (idKey == null) {
            idKey = "id";
        }

        var latitude = lat_min + (Math.random() * lat_range);
        var longitude = lng_min + (Math.random() * lng_range);
        var ret = {
            latitude: latitude,
            longitude: longitude,
            title: 'm' + i,
            show: false
        };
        ret.onClick = function() {
            console.log("Clicked!");
            ret.show = !ret.show;
        };
        ret[idKey] = i;
        return ret;
    };
    $scope.randomMarkers = [];
    // Get the bounds from the map once it's loaded
    $scope.$watch(function() { return $scope.map.bounds; }, function(nv, ov) {
        // Only need to regenerate once
        if (!ov.southwest && nv.southwest) {
            var markers = [];
            for (var i = 0; i < 50; i++) {
                markers.push(createRandomMarker(i, $scope.map.bounds))
            }
            $scope.randomMarkers = markers;
        }
    }, true);

最佳答案

不知何故,它无法访问层次结构中的“windowClicked”方法。

在 rootScope 上创建方法并在模板中使用它。

在 Controller 中

$scope.$root.windowClicked = function () {alert('here')}

在标记中

<a ng-click="$root.windowClicked()">test</a>

这是更新的笔。 http://codepen.io/anon/pen/qEKjjb

关于javascript - ng-click inside ui-gmap-windows 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760761/

相关文章:

javascript - Cordova 为 iOS 中的 click() 事件增加了 350 毫秒的延迟

javascript - 将数组排序为具有键和值对的对象,具有相同值的对象被插入相同的键/值

javascript - highcharts-ng 不显示饼图

javascript - 我可以使用新的 'controller as' 语法将 Typescript 类用作 AngularJS Controller 吗

angularjs - 使用过滤器为 mousestats 标记敏感数据

javascript - 是否可以控制获取哪些 Google map 脚本(JavaScript API)?

javascript - Ext.msg.Alert 将文本消息居中对齐

javascript - 在移动设备的触摸启动时添加 CSS 更改

android - RuntimeException : API key not found. 检查 geo.API_KEY 是否在 AndroidManifest.xml 中

android - 如何获取点击android集群组?