Приложение с отложенной загрузкой не загружает директиву

Я пытаюсь лениво загрузить директиву в мое угловое приложение, используя ui.router и oc.lazyLoad. Вот мой код:

меню:

<ul>
      <li><a ui-sref="home">Home</a></li>
      <li><a ui-sref="demo">Demo</a></li>
      <li><a ui-sref="test">Test</a></li>
    </ul>
    <ui-view></ui-view>

Конфигурация маршрута:

angular.module('app', ['ui.router', 'oc.lazyLoad'])
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
        $stateProvider
          .state("demo", {
            url:'/demo',
            views: {
              'lazyLoadView' : {
                template: '<demo-directive></demo-directive>'
              }
            },
            resolve : {
              loadDemoModule : ['$ocLazyLoad', function($ocLazyLoad) {
                console.log('resolving demo lazy load');
                return $ocLazyLoad.load('demo.js');
              }]
            }
          })
          .state("home", {
            templateUrl : 'core/home.html',
            url : '/home'
          })
}])

и директива:

angular.module('app').
directive('demoDirective', function() {

  return {
    restrict: 'E',
    scope: {},
    template: require('./demo-directive.html'),
    // templateUrl: 'demo-directive.html', 
    controllerAs: 'demo',
    controller : ['$timeout', function($timeout) {
      console.log('in directive controller');
    }]
  };

});

У меня нет ошибок, console.log при разрешении функции отображается, файл demo.js загружается, но затем происходит замечание, контроллер директивы формы консоли не отображается. Я пытаюсь следовать первому примеру из примера ocLazyLoad

Спасибо

2 ответа

Как насчет ленивой загрузки таким образом.

return $ocLazyLoad.load({
                        name: 'app.demo',
                        files: ['path/to/demo.js']
                    })

Вы не объявили модуль oc.lazyLoad как зависимость.

angular.module('app.demo', ["oc.lazyLoad"])

Смотрите быстрый старт - https://oclazyload.readme.io/docs/

Вы также не закрываете свою демонстрационную директиву

 template: '<demo-directive></demo-directive>'
Другие вопросы по тегам