Загрузка файлов контроллера js с использованием require.js

Я участвую в реализации require.js для загрузки необходимых файлов javascript. Я могу загрузить файлы сценариев Java, используя require.js, которые заменяют теги

<div ng-view=""> <!-- partial will go here --> </div>

/js/main.js

requirejs.config({
 paths: {
 controllers: './controllers',
 app: './app'
 }
});
requirejs(['controllers', 'app'],
function (controller, app) { });

/js/app.js

var CarApp = angular.module('CarApp', ['ngResource'])

CarApp.config(function($routeProvider, $locationProvider) {
 $routeProvider
 .when('/', {controller: ListCtrl, templateUrl: '/partials/list.html'}) 
 .otherwise({redirectTo: '/'})
 $locationProvider.html5Mode(true)
})

После загрузки файла app.js с помощью require.js он не может получить доступ к модулю "CarApp" внутри app.js. почему это происходит? Как я могу получить доступ к модулю CarApp через main.js.

1 ответ

Ваши файлы, загруженные RequireJS, не загружаются на событие готовности страницы, время, которое Angular пытается загрузить. Вот почему модуль CarApp не найден.

Вы должны загрузиться вручную (ref):

  1. Удалите директиву ng-app, замените его идентификатором:

  2. Бутстрап вручную в main.js:

    requirejs(['controllers', 'app'], function(controller, app) {
     angular.element(document).ready(function() {
     angular.bootstrap(document.getElementById('mainContainer'), ['myApp']);
     });
    });

Также проверяйте угловое требование-ленивое для некоторых, потенциально полезных, идей.

licensed under cc by-sa 3.0 with attribution.