Ответ 1
Из того, что я видел, приложение Angular должно иметь отдельные контроллеры для отдельных областей. Например, почти все приложения имеют пользовательские данные. Вы хотите, чтобы эти данные были привязаны к пользовательской модели внутри пользовательского контроллера:
function UserCtrl ($scope) {
$scope.user = {
name: "bmorrow",
lastLogin: "4/16/2013"
};
}
И шаблон (наш вид) будет находиться внутри определенной части структуры приложений. Например, правая сторона панели навигации или на странице сведений о пользователе. Мы устанавливаем, где эта часть, назначая ей контроллер с помощью ng-controller
. Это создает scope
указанного контроллера и связывает с ним соответствующие модели. Модель (наши данные) подключена к представлению (HTML) через контроллер.
Предположим, что приложение имеет страницу для написанных пользователем статей. Мы можем создать другой контроллер, ограниченный только секцией HTML, которая специально содержит содержимое статьи.
function ArticleCtrl ($scope) {
$scope.article = {
title: "Hello World",
body: "Lorem ipsum...."
};
}
В приведенном выше тривиальном примере объединение обоих контроллеров не повредит. Но как только ваше приложение начнет расти, логическая организация ваших контроллеров/представлений в соответствии с представленными ими данными сделает ваш код более понятным и понятным. Менее ненужная сложность сделает все намного проще. И использование одного контроллера для всех - ненужная сложность.
Вы можете видеть это проиллюстрировано в ответе Басарата. Вам необязательно использовать один контроллер на один маршрут, но это помогает логически структурировать приложение.
Итак, чтобы ответить на ваш вопрос, у вас обычно должен быть один контроллер для каждой категории данных. Пользователи, статьи, фрукты, овощи, транзакции и т.д.
Читайте о Angular контроллерах и шаблоне Model-View-Controller для получения дополнительной информации, если вы еще нет. Надеюсь, это поможет.