Поэтому я пытаюсь загрузить все скрипты AngularJS
которые мне нужны в моем приложении, когда загружается файл index.html
.
Для этого я сделал этот кусок кода
<head>
...
AngularJS libaries loads
...
<script>
var main = {
root: [
'core.js'
]
};
var iterateScripts = function(folder, path){
for(var key in folder){
if(key.toLowerCase() === 'root'){
for(var i = 0; i < folder[key].length; i++){
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = path + '/' + folder[key][i];
// console.info('script : '+ script.src)
document.getElementsByTagName('head')[0].appendChild(script);
}
} else {
var newPath = path + '/' + key;
// console.info('path : ', newPath, folder[key])
iterateScripts(folder[key], newPath);
}
}
};
iterateScripts(main, 'app/main');
console.info(document.getElementsByTagName('head')[0])
</script>
</head>
Это загружает файлы в порядке, но я получаю эту ошибку
После тестирования взад и вперед я пришел к выводу, что проблема заключается в том, что страница загружается, когда AngularJS компилируется, что создает ошибку.
Если это так, как я могу загружать свое угловое приложение аналогичным образом до того, как тег body
загрузится?
Вам придется загрузиться самостоятельно, вместо использования ng-app. Вот документация по нему: https://docs.angularjs.org/guide/bootstrap.
Как только все ваши скрипты будут загружены, вы запустите кусок кода, который выглядит примерно так:
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
Который говорит, что он готов к запуску.