2016-06-02 11 views
0

Недавно я начал использовать RequireJS с AngularJS. Я наткнулся на плагин под названием AngularAMD, который упрощает работу Требований и Угловых. У меня есть следующая конфигурация.Проблема при загрузке внешнего углового модуля в модуль 'mainApp' с использованием RequireJS

require.config({ 
    baseUrl: "",  
    paths: { 
     'angular': 'lib/js/angular.min', 
     'angular-route': 'lib/js/angular-route.min', 
     'angular-resource': 'lib/js/angular-resource.min', 
     'angularAMD': 'lib/js/angularAMD.min', 
     'jquery':'lib/js/jquery-1.11.3.min', 
     'bootstrap':'lib/js/bootstrap.min', 
     'httpAPIService' : 'httpAPIService', 
     'angular-charts':'lib/js/angular-charts', 
     'd3': 'lib/js/d3.min' 
    }, 
    shim: { 'bootstrap':['jquery'], 'angular': ['jquery', 'bootstrap'], 'angularAMD': ['angular'], 'angular-route': ['angular'], 'angular-resource': ['angular'], 'angular-charts':['angular', 'd3'], 'httpAPIService': ['mainApp']}, 
    deps: ['mainApp'] 
}); 

Сейчас в mainApp.js У меня есть следующий код:

define(['angularAMD', 'angular-route'], function (angularAMD) { 

    var mainApp = angular.module('mainApp', ['ngRoute']); 

    mainApp.config(function ($routeProvider) { 
     $routeProvider.when("/userAgreement", angularAMD.route({ 
      templateUrl: 'modules/agreement/views/eulaView.html', controller: 'eulaController', 
      controllerUrl: 'modules/agreement/js/eulaController' 
     })) 
     .otherwise({ 
      redirectTo: '/' 
     }); 
    }); 
    return angularAMD.bootstrap(mainApp); 
}); 

Который работает отлично. Но если я попытаюсь добавить к нему модуль angular-charts. Пример:

define(['angularAMD', 'angular-route', 'angular-charts'], function (angularAMD) { 

    var mainApp = angular.module('mainApp', ['ngRoute', 'angularCharts']); 

    mainApp.config(function ($routeProvider) { 
     $routeProvider.when("/userAgreement", angularAMD.route({ 
      templateUrl: 'modules/agreement/views/eulaView.html', controller: 'eulaController', 
      controllerUrl: 'modules/agreement/js/eulaController' 
     })) 
     .otherwise({ 
      redirectTo: '/' 
     }); 
    }); 
    return angularAMD.bootstrap(mainApp); 
}); 

Это дает мне $injector:modulerr Module Error. Я новичок в концепции AMD. Пожалуйста помоги.

+0

Несомненно, вы правильно указали имя модуля для массива зависимостей? Забудьте загрузить файл модуля? – charlietfl

+0

Да. Согласно документации, мне нужно добавить 'angularCharts'. И я проверил в файле модуля консоли, загружается правильно. – Roy

ответ

0

Вы попробовали ngload за documentation?

define(['angularAMD', 'angular-route', 'ngload!angular-charts'], function (angularAMD) { 

... 

}) 

 Смежные вопросы

  • Нет связанных вопросов^_^