У меня есть приложение MEAN Stack, которое ранее было серверным приложением, и теперь я пытаюсь преобразовать его в одностраничное приложение.Структура приложения для SPA - AngularJS
Мой Текущий Состав:
- У меня есть index.ejs файл, который загружает основной вид и содержит
ng-view
тег. - В файле index.ejs есть меню с 5 элементами. Каждый элемент загружает новое представление внутри ng-view.
- Каждый пункт меню загружает новое представление, и каждый из них имеет свои собственные контроллеры.
Мой Выпуск:
В настоящее время все мои функциональность находится под управлением одного контроллера, так когда я использую ngRoute это выглядит следующим образом:
myCtrl.config(function($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl: '/test.ejs',
controller: 'myCtrl1',
})
// route for the about page
.when('/proposals', {
templateUrl: '/profile.ejs',
controller: 'myCtrl1'
})
// route for the contact page
.when('/bios', {
templateUrl : '/test2.ejs',
controller : 'myCtrl1'
});
});
Это вызывает мой файл контроллера для многих кода. Я хочу разделить их на основе их возможностей. Поэтому каждый вид должен иметь свой собственный контроллер.
Мои вопросы:
- Что правильная структура приложения для данного типа сценария.
Как я могу поместить внешние контроллеры в ngRoute так:
myApp.controller('myCtrl1',function($scope){}); .when('/', { templateUrl: '/test.ejs', controller: 'myCtrl1', // INTERNAL CONTROLLER }) .when('/proposals', { templateUrl: '/profile.ejs', controller: '/directory2/js/myCtrl2' //EXTERNAL CONTROLLER })
Я не уверен, Что правильный подход здесь. Я хочу сделать свое приложение модульным и разделять беспокойство.
Я думаю, у вас должен быть один, самый абстрактный, 'MainCtrl', который определен на' div', обертывающий ваш 'ng-view' или' body', и каждый вид будет иметь собственный отдельный контроллер. – notgiorgi
@notgiorgi не могли бы вы представить пример, пожалуйста? – Skywalker
Хорошо, я отправлю его в качестве ответа. – notgiorgi