【发布时间】:2016-07-05 12:58:30
【问题描述】:
我正在使用 AngularJS 构建一个带有地图的简单应用程序。由于主 ctrl 的逻辑太多,我为导航栏构建了第二个控制器。直到这里一切正常。现在我在重构主控制器时外包了 map.on('zoomend' ... ) 函数。
现在的问题是,当缩小导航栏控制器文件时(通过 grunt build uglify)我得到以下错误:
无法读取未定义的
这意味着 map 是未定义的,即使它是在文件顶部声明的,而且我在 localhost 上没有问题(grunt serve)。
导航栏Ctrl:
'use strict';
angular.module('angularMapApp').controller('navbarController', navbarController);
navbarController.$inject = ['$scope', '$mdSidenav', 'helper', 'RespondService', 'shipTypes'];
function navbarController($scope, $mdSidenav, helper, RespondService, shipTypes) {
var map = RespondService.getMap();
map.on('zoomend', function() {
timestamp = RespondService.getTimestamp();
selectedShipTypes = RespondService.getSelectedShipTypes();
selectedShipState = RespondService.getSelectedShipState();
showGrid = RespondService.getShowGrid();
helper.loadAndShowShipMarkers(timestamp, selectedShipTypes, selectedShipState, showGrid, map).then(function(results) {
$scope.numberOfShips = results;
RespondService.setNumberOfShips($scope.numberOfShips);
});
});
所以这是我的控制器的简短版本。 grunt 文件仍然与使用 yeoman 创建的相同。我也在文件顶部记录了地图值,它在那里有一个值。但是使用 'map.on' 可能不起作用。
也许任何人都可以帮助我。
【问题讨论】:
标签: javascript angularjs