Я хочу вызвать функцию, когда все мои файлы (JS) загружены (потому что я хотел бы вызвать функцию, которая находится внутри одного из этих файлов). Как мне это сделать?
.state('dashboard', {
url: "/dashboard.html",
templateUrl: "views/dashboard.html",
data: {pageTitle: 'Dashboard'},
controller: "DashboardController",
resolve: {
deps: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'MetronicApp',
insertBefore: '#ng_load_plugins_before',
files: [
'/assets/global/plugins/morris/morris.css',
'/assets/admin/pages/css/tasks.css',
'/assets/global/plugins/morris/morris.min.js',
'/assets/global/plugins/morris/raphael-min.js',
'/assets/global/plugins/jquery.sparkline.min.js',
'/assets/admin/pages/scripts/index3.js',
'/assets/admin/pages/scripts/tasks.js',
//'/js_custom/dashboard.js',
'js/controllers/DashboardController.js'
]
});
}]
}
})
источник: Metronic Template Версия AngularJS
Похоже, $ocLazyLoad.load()
возвращает обещание. Он должен быть разрешен, когда все файлы загружены. Существует пример в документации, что кажется, похоже на то, что вы хотите:
[...]
return $ocLazyLoad.load('js/ServiceTest.js').then(function() {
var $serviceTest = $injector.get("$serviceTest");
$serviceTest.doSomething();
});