Нужно ли нам несколько контроллеров для реализации маршрутов в angularjs?

Есть вероятность, что я не смогу правильно объяснить свою проблему. Дай мне попробовать.

Я разрабатываю одностраничное приложение с использованием угловых. Это приложение в основном отображает эпизоды серии онлайн-романов. Существует панель навигации, которая имеет меню запросов (например, последний эпизод, эпизод с определенной датой, эпизоды с определенным тегом и т. Д.). Для каждого из этих запросов я хочу отдельный URL.

/latest - должен отображать последний эпизод

/tag/:tagname - должен вернуть все эпизоды с этим тегом.

Для всех этих запросов результирующее представление одинаково (список эпизодов). Поэтому я буду использовать один и тот же частичный для всех маршрутов.

У меня вопрос: нужно ли мне создавать новый контроллер для каждого запроса? лайк, LatestEpisodeController, TagController?

Можно ли в любом случае использовать URL-адрес, чтобы определить, что пользователь хочет, и выполнить этот запрос из одного контроллера?

3 ответа

Решение

Конечно, вы можете использовать тот же контроллер в определении маршрутизации, вопрос в том, какова цель этого? Потом будет хуже отлаживать его, если у вас есть общая функциональность, лучше превратить его в фабрику или службу, а затем использовать в контроллерах.

Но ответ ДА, вы можете использовать одни и те же контроллеры и реализовывать различное поведение на основе, например, $location.path()

Да, вы можете использовать один контроллер для множественной маршрутизации. вы можете создавать различные функции в контроллере и в каждой функции выполнять соответствующую работу. В моем случае я создал другую html-страницу для разных URL-адресов и зарегистрировал один и тот же контроллер для html-страниц, а на html-странице я вызвал метод контроллера, используя ng-init в части div.

Вы можете использовать тот же контроллер и те же представления, что и вам... $location может помочь вам получить текущий путь или полный URL, если вы хотите, и вы можете позвонить в службу, зависит от вашего пути...

здесь я напишу небольшой пример для вас, чтобы получить идею

PLUNKER

Другие вопросы по тегам