grunt构建后未找到/未定义的变量(uglify)

时间:2016-03-18 16:52:37

标签: javascript angularjs

我正在使用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'可能行不通。

也许任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

你的$ inject似乎是正确的,所以minify应该适用于角度注入。看起来var map正在从RespondService.getMap()加载数据。您期望从该功能获得什么?您可能想要设置一个断点,看看您期望返回的是什么。