Не могу лениво загрузить контроллеры в угловом режиме с oc.lazyLoad - контроллер не найден

0

Я хочу использовать ленивую загрузку в моем проекте Angular:

Это соответствующий код app.js:

var app = angular.module('eva', ['ui.router',
  'controllers', 'oc.lazyLoad']);

app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', '$locationProvider', '$ocLazyLoadProvider',
  function($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider, $ocLazyLoadProvider) {
    $httpProvider.interceptors.push('AuthInterceptor');


    $urlRouterProvider.otherwise("/");
    $locationProvider.hashPrefix('!');

    $stateProvider.state('challenge', {
      url: '/challenges',
      templateUrl: 'views/Challenges.html',
      controller: 'ChallengeCtrl',
      onEnter: ['$state', 'auth', function($state, auth) {
        if (!auth.isLoggedIn()) {
          $state.go('login');
        }
      }],
      resolve: { // Any property in resolve should return a promise and is executed before the view is loaded
        loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) {
          // you can lazy load files for an existing module
          return $ocLazyLoad.load('js/controllers/ChallengeController.js');
        }]
      }

Это мой код определения контроллера:

angular.module('eva').controller('ChallengeCtrl', ['$scope', 'auth','$translate', 'challengeFactory', 'userFactory', 'userService',
  function($scope, auth, $translate, challengeFactory, userFactory, userService) {

Я не загружаю файл challengeecontroller.js в файл index.html.

Я включаю oclazyload непосредственно перед app.js в файле index.html:

<script type="text/javascript" src="js/lib/oclazyload/dist/ocLazyLoad.js"></script>
        <script type="text/javascript" src="js/app.js"></script>

Я получаю эту ошибку сейчас, когда запускаю приложение:

Error: [ng:areq] http://errors.angularjs.org/1.4.7/ng/areq?p0=ChallengeCtrl&p1=not%20a%20function%2C%20got%20undefined

Я пробовал много вещей для ленивой загрузки, никто из них не работал. Теперь я просто следовал примеру на примере

Я действительно нахожусь в рассоле, и я не знаю, что делать, чтобы заставить ленивую загрузку работать. Я скорее не работаю с requirejs.

Теги:
oclazyload

1 ответ

0

угловая конфигурация - это просто функция, любые зависимости должны быть уже $ inject, прежде чем вы вызовете эту конфигурацию. вы можете включить его в <script> и добавить его в app = angular.module['app', ['depend1'])

поэтому вы измените его и попробуйте снова.

app.config(function($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider, $ocLazyLoadProvider) {

btw: откройте ваши Dev-Tools Browser, чтобы проверить, правильно ли этот файл js/controllers/ChallengeController.js корректен

Ещё вопросы

Сообщество Overcoder
Наверх
Меню