Вы должны использовать любой загрузчик зависимостей / модулей, например requirejs, чтобы сделать загрузку зависимостей более организованной в приложении.
Чтобы динамически загружать скрипт в DOM, вы можете использовать функцию, подобную этой -
var loadScript = function (url, callback) {
var script = document.createElement("script");
script.type = "text/javascript";
if (script.readyState) { //IE
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
console.log(url + ' loaded successfully.');
if ($.isFunction(callback)) {
callback();
}
}
};
} else { //Others
script.onload = function () {
console.log(url + ' loaded successfully.');
if ($.isFunction(callback)) {
callback();
}
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
Эта функция должна находиться в любом скрипте, который загружается заранее (например, config.js).Вы можете избежать второго параметра, если вам не нужно.Это просто дает вам возможность что-то сделать, если вам нужно один раз после загрузки скрипта.
Вот демонстрационный вызов функции загрузки скрипта с использованием myApp -
var myApp = angular.module('myApp', ['ionic','ionic-datepicker','ui.router','toaster','ngAnimate']);
myApp.run(function(){
config.loadScript('yourScriptPath', null);
})
.config(function($stateProvider, $urlRouterProvider) {
//==========================================================================//
// Build the pages up for the application with their respective controllers //
//==========================================================================//
$stateProvider
.state('login', {
cache : false,
url : '/',
controller : "LoginController",
templateUrl : 'login.html'
})
.state('page1', {
cache : false,
url : '/page1',
controller : "page1controller",
templateUrl : 'page1.html'
})
.state('page2', {
cache : false,
url : '/page2',
controller : "page2controller",
templateUrl : 'page2.html'
})
.state('page3', {
cache : false,
url : '/page3',
controller : "page3controller",
templateUrl : 'page3.html'
});
$urlRouterProvider.otherwise('/');
});
Спасибо