Проблема заключается в том, что вы добавляете параметр serie
к объекту конфигурации провайдера, , который игнорируется , поскольку он будет получать конфигурацию для каждого модуля и загружать их параллельно в любом случае.По сути, эта опция должна присутствовать в каждом модуле, скрипты которого необходимо загружать по порядку.
Быстрое решение для вас - использовать обещания, чтобы убедиться, что модули загружены по порядку.,Поскольку вызов load()
возвращает обещание, мы можем выполнить вторую загрузку после этого:
$ocLazyLoadProvider.config({
debug: true,
modules: [{
name : 'codeMirror1',
files: [
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/codemirror.min.css",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/codemirror.min.js"
]},{
name : 'codeMirror2',
files: [
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/mode/xml/xml.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/mode/htmlmixed/htmlmixed.min.js",
...
]}]
});
...
loadSiteCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load(['codeMirror1']).then(function() {
return $ocLazyLoad.load(['codeMirror2'])
});
}]
...
Проверить этот плункер для рабочего примера этого.
В качестве альтернативы, поскольку CodeMirror
поддерживает загрузчики модулей , а ocLazyLoad
прекрасно работает с requireJS
, вам может быть интересно попробовать его.Вы бы установили requireJS
в качестве загрузчика для модулей на ocLazyLoad
, и при загрузке модулей, которые зависят от CodeMirror
, он удостоверится, что они уже были загружены (то есть вам не нужно делать что-то последовательно).