Загрузите геологическую библиотеку angularjs с requirejs

Я пытаюсь включить это angularjs библиотеки AngularGeo для моего проекта, но я получаю эту ошибку в app.js файле angularjs модуля:

Failed to instantiate module myApp due to:
Error: [$injector:unpr] Unknown provider: angular-geo

Я вижу, что файлы angularjs-geo загружены, и я вижу их в инструментах dev, но в любом случае я получаю эту проблему.

main.js:

require.config({
 baseUrl: 'app',
 //urlArgs: 'v=1.0'
 paths: {
 'angular': '../scripts/angular',
 'angular.route': '../scripts/angular-route',
 'angular.localStorage': '../scripts/angular-local-storage.min',
 'lodash': '../scripts/lodash',
 'angular-google-maps': '../scripts/angular-google-maps',
 'jquery': '../scripts/jquery-2.1.1',
 '***********': '../scripts/ui-bootstrap-0.11.0.min',
 'underscore': '../scripts/underscore-min',
 'gmaps': '../scripts/gmaps',
 'async': '../scripts/requirejs-plugins/async',
 'propertyParser': '../scripts/requirejs-plugins/propertyParser',
 'goog': '../scripts/requirejs-plugins/goog',
 'select2': '../scripts/select2/select2',
 'ui-select2': '../scripts/ui-select2/src/select2',
 'angular-detour': '../scripts/angular-detour/dist/angular-detour.amd',
 'angular-geo': '../scripts/modules/angularGeo/angulargeo',
 'angular-geo-providers.google': '../scripts/modules/angularGeo/providers/angulargeo-google'
 },

 shim: {
 'angular': {
 exports: 'angular',
 deps: ['jquery']
 },
 'underscore': {
 exports: '_'
 },
 'angular.route': ['angular'],
 'angular.localStorage': ['angular'],

 'angular-google-maps': {
 deps: ['angular', 'underscore'],
 exports: 'angular-google-maps'
 },
 '***********': ['angular'],
 'select2': ['jquery', 'angular'],
 'ui-select2': ['select2'],
 'angular-geo': {
 exports: 'angular-geo',
 deps: ['angular', 'goog']
 },
 'angular-geo-providers.google': {
 exports: 'angular',
 deps: ['angular', 'angular-geo']
 }
 }
});

app.js:

define(['angular', 'angular.route', 'angular.localStorage', '***********', 'angular-google-maps', 'services/routeResolver', 'ui-select2', 'angular-detour', 'angular-geo'], function () {
 var app = angular.module('myapp', ['ngRoute', 'LocalStorageModule', 'ui.bootstrap', 'google-maps', 'routeResolverServices', 'ui.select2', 'agt.detour', 'angular-geo']);
 app.config(['$routeProvider', 'routeResolverProvider', '$controllerProvider', '$compileProvider', '$filterProvider', '$provide', '$locationProvider', 'angular-geo', function ($routeProvider, routeResolverProvider, $controllerProvider, $compileProvider, $filterProvider, $provide, $locationProvider, angularGeoProvider, angularGeoGoogleProvider) {
 angularGeoProvider.addProvider(angularGeoGoogleProvider.name);
 }
}
1 ответ

Имя зависимости (не зависит от модуля) должно быть angularGeo. И поскольку вы, вероятно, хотите провайдера, angularGeoProvider - не angular-geo. Кроме того, поскольку вы также используете angularGeoGoogleProvider, добавьте его в список зависимостей, а именно:

define(['angular', ..., 'angular-geo'], function () {
 var app = angular.module('myapp', ['ngRoute', ..., 'angular-geo']);
 app.config([
 '$routeProvider', ..., 'angularGeoProvider', 'angularGeoGoogleProvider',
 function ($routeProvider, ..., angularGeoProvider, angularGeoGoogleProvider) {
 angularGeoProvider.addProvider(angularGeoGoogleProvider.name);
 }
 ]);
};

licensed under cc by-sa 3.0 with attribution.