Я пытаюсь сделать простое одностраничное мобильное приложение с несколькими представлениями и кнопкой "\ назад" для управления каждым просмотром. Я использую библиотеку Angular Mobile UI.
Основной макет выглядит следующим образом:
<html>
<head>
<link rel="stylesheet" href="mobile-angular-ui/dist/css/mobile-angular-ui-base.min.css">
<link rel="stylesheet" href="mobile-angular-ui/dist/css/mobile-angular-ui-desktop.min.css">
<script src="js/angular/angular.min.js"></script>
<script src="js/angular/angular-route.min.js"></script>
<script src="mobile-angular-ui/dist/js/mobile-angular-ui.min.js"></script>
<script src="app/app.js"></script>
<script src="app/firstController.js"></script>
<script src="app/secondController.js"></script>
<script src="app/thirdController.js"></script>
</head>
<body ng-app="demo-app">
<div ng-view></div>
<div ng-controller="nextBackController" class="navbar navbar-app navbar-absolute-bottom">
<div class="btn-group justified">
<a href="#/" class="btn btn-navbar btn-icon-only"><i class="fa fa-home fa-navbar"></i></a>
<a href="#/second" class="btn btn-navbar btn-icon-only"><i class="fa fa-list fa-navbar"></i></a>
</div>
</div>
</body>
</html>
App.js выглядит следующим образом:
var app = angular.module('demo-app', [
"ngRoute",
"mobile-angular-ui"
]);
app.config(function($routeProvider) {
$routeProvider.when('/', { controller: "firstController",
templateUrl: "views/first.html"});
$routeProvider.when('/', { controller: "secondController",
templateUrl: "views/first.html"});
$routeProvider.when('/', { controller: "thirdController",
templateUrl: "views/first.html"});
});
controllers = {};
controllers.nextBackController = function($scope, $rootScope) {
//Simple controller for the next, back buttons so we just put it in app.js
};
app.controller(controllers);
firstController.js будет содержать что-то похожее на:
controllers.firstController = function($scope) {
//Do our logic here!!!
};
Проблема в том, что если вы заметите в верхней части HTML-страницы, мне нужно загрузить все контроллеры. Это не масштабируется. Я хочу, чтобы каждый контроллер находился в своем собственном JS файле и не должен был статически загружать каждый из них, поскольку пользователь может даже не потребовать этот контроллер. Есть ли способ динамически загружать реальный файл JS при переключении маршрутов? или я могу прикрепить тег сценария вверху моего файла "first.html", "second.html" и т.д.