使用angular-google-maps指令可以在" grunt serve"但不是在默认的grunt任务期间

时间:2014-06-10 18:54:32

标签: javascript angularjs angular-google-maps

我正在使用Yeoman AngularJS生成器构建地图应用程序。我已经使用bower安装了angular-google-maps。如果我使用" grunt serve"测试应用程序,它工作正常,地图正确加载。如果我只是发出" grunt"为了构建应用程序,它失败了并且说“模块化”谷歌地图'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。"

我不确定为什么它不能使用默认任务。我跑了" grunt bowerInstall"并确认index.html确实对angular-google-maps有正确的引用。我之前也在加载Google Maps API。

这是我的app.js

angular
  .module('webappApp', [
    'ngCookies',
    'ngResource',
    'ngSanitize',
    'ngRoute',
    'google-maps'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。在Karma测试期间发生了错误,因为它没有找到Google Maps API,也没有找到angular-google-maps源。所以我更新了karma.conf.js以从bower_components中提取Google Maps API和angular-google-maps来源。

files: [
  'http://maps.googleapis.com/maps/api/js?sensor=false',
  'app/bower_components/angular/angular.js',
  'app/bower_components/angular-mocks/angular-mocks.js',
  'app/bower_components/angular-resource/angular-resource.js',
  'app/bower_components/angular-cookies/angular-cookies.js',
  'app/bower_components/angular-sanitize/angular-sanitize.js',
  'app/bower_components/angular-route/angular-route.js',
  'app/bower_components/lodash/dist/lodash.compat.js',
  'app/bower_components/angular-google-maps/dist/angular-google-maps.js',
  'app/scripts/*.js',
  'app/scripts/**/*.js',
  'test/mock/**/*.js',
  'test/spec/**/*.js'
],