Поиск…


замечания

  1. Если ваши ленивые загруженные зависимости требуют других ленивых загруженных зависимостей, убедитесь, что вы загрузили их в правильном порядке!
angular.module('lazy', [
 'alreadyLoadedDependency1',
 'alreadyLoadedDependency2',
 ...
 {
  files: [
  'path/to/lazily/loaded/dependency1.js',
  'path/to/lazily/loaded/dependency2.js', //<--- requires lazily loaded dependency1
  'path/to/lazily/loaded/dependency.css'
  ],
  serie: true //Sequential load instead of parallel
 }
]);

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

После включения oclazyload.js в ваш индексный файл объявите ocLazyLoad как зависимость в app.js

//Make sure you put the correct dependency! it is spelled different than the service!
angular.module('app', [
 'oc.lazyLoad',
 'ui-router'
])

использование

Чтобы лениво загружать файлы, $ocLazyLoad службу $ocLazyLoad в контроллер или другую службу

.controller('someCtrl', function($ocLazyLoad) {
 $ocLazyLoad.load('path/to/file.js').then(...);
});

Угловые модули будут автоматически загружаться в угловые.

Другие варианты:

$ocLazyLoad.load([
  'bower_components/bootstrap/dist/js/bootstrap.js',
  'bower_components/bootstrap/dist/css/bootstrap.css',
  'partials/template1.html'
]);

Полный список вариантов см. В официальной документации

Использование с маршрутизатором

UI-маршрутизатор:

.state('profile', {
 url: '/profile',
 controller: 'profileCtrl as vm'
 resolve: {
  module: function($ocLazyLoad) {
   return $ocLazyLoad.load([
    'path/to/profile/module.js',
    'path/to/profile/style.css'
   ]);
  }
 }
});

ngRoute:

.when('/profile', {
     controller: 'profileCtrl as vm'
     resolve: {
      module: function($ocLazyLoad) {
       return $ocLazyLoad.load([
        'path/to/profile/module.js',
        'path/to/profile/style.css'
       ]);
      }
     }
    });

Использование инъекции зависимостей

Следующий синтаксис позволяет вам указывать зависимости в вашем module.js вместо явной спецификации при использовании службы

//lazy_module.js
angular.module('lazy', [
 'alreadyLoadedDependency1',
 'alreadyLoadedDependency2',
 ...
 [
  'path/to/lazily/loaded/dependency.js',
  'path/to/lazily/loaded/dependency.css'
 ]
]);

Примечание : этот синтаксис будет работать только для лениво загружаемых модулей!

Использование директивы

<div oc-lazy-load="['path/to/lazy/loaded/directive.js', 'path/to/lazy/loaded/directive.html']">

<!-- myDirective available here -->
<my-directive></my-directive>

</div>


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow