2016-08-07 1 views
0

Я решил попробовать и узнать RequireJS, поэтому я пытаюсь реализовать его в проекте, где я также решил использовать Angular и Angular-Route для маршрутизации.Почему мой модуль «app» не определен »в контроллере после маршрутизации с угловым маршрутом и реализации RequireJS?

Мне удалось установить один модуль в моем приложении.js, но после добавления моего первого маршрута и настройки контроллера для этого маршрута «приложение» не определено в контроллере.

Похоже, что мне как-то нужно настроить «приложение» как зависимость для «homeCtrl», или мне нужно как-то сделать модуль «app» доступным. Я просто не знаю, как это сделать.

Вот что устанавливается до сих пор:

index.html ... (* голова-бла-бла) ...

<body ng-app="MyApp"> 

    <div ng-view> 

    </div> 

    <script data-main="./app/config" src="./app/require.js"></script> 
    <script> 
     require(['config'], function() { 
     require(['app/app']); 
     }); 
    </script> 
    </body> 
</html> 

приложение/config.js ...

requirejs.config({ 
    baseUrl: './', 
    paths: { 
    jquery: 'lib/bower_components/jquery/dist/jquery.min', 
    bootstrap: 'lib/bower_components/bootstrap/dist/js/bootstrap.min', 
    angular: 'lib/bower_components/angular/angular.min', 
    angular_route: 'lib/bower_components/angular-route/angular-route.min', 
    home: 'app/controllers/homeCtrl' 
    } 
}); 

приложение/app.js ...

"use strict"; 

define(['jquery', 'angular', 'angular_route', 'home'], function ($, angular, angular_route, home) { 

    let app = angular.module('MyApp', ['ngRoute']); 

    app.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider. 
     when('/home', { 
     templateUrl: 'partials/home.html', 
     controller: 'homeCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/home' 
    }); 
    }]); 

// End RequireJS 'define' 
}); 

приложение/Controll ERS/homeCtrl.js ...

"use strict"; 

define(['jquery', 'angular'], function ($, angular) { 

    app.controller('homeCtrl', [ 
    '$scope', 

    function ($scope) { 
     $('body').html(`<div>Hey it worked!</div>`); 

    } 
    ]); 
// End 'define' 
}); 

Снимок экрана ошибок в консоли:

enter image description here

консоли сетевой раздел, показывающий файлы загружены:

Опять же, я Я новичок в использовании RequireJS, поэтому я уверен, что я делаю простую ошибку где-то.

Спасибо за любую помощь/решения!

+0

Возможная дубликата [Использование angularJS с requireJS - не может прочитать свойство «модуль» неопределенных] (http://stackoverflow.com/questions/22033992/с использованием-angularjs-с-requirejs-не-чтение свойства-модуля-из-неопределенных) – Louis

ответ

0

Вам необходимо следующее подкладку, потому что Угловая не вызывает define:

angular: { 
    exports: "angular" 
}