我正在使用AngularJS构建一个带地图的简单应用程序。由于主ctrl有太多逻辑,我为导航栏构建了第二个控制器。直到这里一切正常。现在我在重构主控制器时外包了map.on(' zoomend' ...)函数。
现在的问题是,当导航栏控制器文件缩小时(通过grunt build uglify),我收到以下错误:
无法读取未定义的
这意味着,即使在文件顶部声明了map,我也没有定义map。我在localhost(grunt serve)上没有问题。
Navbar 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'可能行不通。
也许任何人都可以帮助我。
答案 0 :(得分:0)
你的$ inject似乎是正确的,所以minify应该适用于角度注入。看起来var map正在从RespondService.getMap()加载数据。您期望从该功能获得什么?您可能想要设置一个断点,看看您期望返回的是什么。