ngMap指令不显示从服务文件中获取的位置坐标

时间:2016-01-14 21:34:29

标签: angularjs angularjs-directive angularjs-service angularjs-controller angularjs-view

我正在尝试从服务文件调用位置坐标并在谷歌地图视图中显示。但由于某种原因,数据绑定不起作用,并且没有错误,控制器正在从服务调用该对象。

我认为我的地图模板中存在一些错误,但我无法找出它是什么。有人可以帮我解决这个问题吗?谢谢。

代码如下:

地图模板

<div class="panel6 panel-primary">
    <div class="panel-heading">Truck's Location</div>
    <div class="panel-body">
        <ng-map zoom="11" center="[49.8994, -97.1392]">
            <marker position="[{{maploc.longitude}}, {{maploc.latitude}}]" />
            <shape name="circle" center="[{{maploc.longitude}}, {{maploc.latitude}}]" radius="4000" />
            <control name="overviewMap" opened="true" />
        </ng-map>
        </div>
   </div>

服务文件

"use strict";

angular.module("fleetListModule").service("fleetsService",

       function () {
           this.getTrucks = function () {
               return trucks;
           };

           var trucks = [
               {
                   "iD": "1",
                   "status": "Running",
                   "destination": "WPG",
                   "alerts": "Nothing",
                       "longitude": "49.8994",
                       "latitude": "-98.1392"
               }
           ];

       });

控制器

"use strict";

angular.module("fleetMapModule").controller("fleetMapController",
    ['$scope', 'fleetsService',
function ($scope, fleetsService) {

    $scope.$on('obtainMapLocation', function (event, map) {
        var fleetMapLocs = fleetsService.getTrucks();
        for (var i = 0; i < fleetMapLocs.length; i++) {
            var fleetMapLoc = fleetMapLocs[i];
            if (fleetMapLoc.iD == map.id) {
                $scope.maploc = fleetMapLoc;
                break;

            }
        }
    });

}]);

1 个答案:

答案 0 :(得分:0)

检查plunker它是否有效。如果您为$ scope.maploc设置默认值,您将看到标记。但问题出在 if 语句总是错误的。

if (fleetMapLoc.iD == map.id)