通过import语句将angular-google-maps集成到AngularJS和ES6项目中的最佳方式

Best way to integrate angular-google-maps to an AngularJS and ES6 project through import statement

本文关键字:项目 ES6 方式 最佳 AngularJS 语句 import angular-google-maps 集成 通过      更新时间:2023-09-26

我正在做一个项目的前端,在这个项目中使用Angular v-1.5和ES6。我正在尝试将gMaps API集成到项目中。

由于目前没有来自google的ES6官方文档,我使用angular-ui(link)的angular-google-maps (link)来做同样的事情。

然而,问题是我找不到任何例子或可靠的材料来做同样的事情。我试着用一种显而易见的方式来做,我们在ES6中是这样做的,即npm install,然后把它导入到我们的应用程序中。但它行不通。原来我不能导入lodash。

查看lodash:

的问题

) https://github.com/lodash/lodash/issues/1457

b) https://github.com/lodash/lodash/issues/1704

我尝试了lodash的一位贡献者在评论中提到的这些解决方案:

) https://github.com/lodash/lodash/issues/1704 issuecomment - 164379884

b) https://github.com/lodash/lodash/issues/1704 issuecomment - 164524426

但他们不工作。

我仍然找不到任何在互联网上解决这个问题。我得到错误:

Uncaught ReferenceError: _ is not defined

显然是由于缺少lodash常数(_)

如果没有成功,不幸的是,我必须回滚到ES5,这将再次消耗大量时间,因为我将不得不改变项目的结构,并将整个语法更改为ES5。

我正面临着同样的问题。在这里看到的:

我的app.js文件:

import angular from 'angular';
// Import our app config files
import constants  from './config/app.constants';
import appConfig  from './config/app.config';
import appRun     from './config/app.run';
import 'angular-ui-router';
import 'angular-ui-bootstrap';
import 'angular-google-maps';
import fp from 'lodash/fp';
const _ = fp();
// Import our templates file (generated by Gulp)
import './config/app.templates';
// Import our app functionaity
import './layout';
import './components';
import './home';
import './profile';
import './services';
import './auth';
import './settings';
import './dashboard';
import './maps';

// Create and bootstrap application
const requires = [
  'ui.router',
  'ui.bootstrap',
  'uiGmapgoogle-maps',
  '_',
  'templates',
  'app.layout',
  'app.components',
  'app.home',
  'app.profile',
  'app.article',
  'app.services',
  'app.auth',
  'app.settings',
  'app.dashboard',
  'app.map'
];
// Mount on window for testing
window.app = angular.module('app', requires);
angular.module('app').constant('AppConstants', constants);
angular.module('app').config(appConfig);
angular.module('app').run(appRun);
angular.bootstrap(document, ['app'], {
  strictDi: true
});

你需要包含/load(通过webpack) lodash:最快的方法是将它包含在你的html:

<script src='https://cdn.jsdelivr.net/lodash/4.15.0/lodash.min.js'> </script>

我也有一些问题,使它与ES6正确工作,有一个问题张贴在github: https://github.com/angular-ui/angular-google-maps/issues/1929