Недавно у некоторых коллег и я обсуждали, нужно ли иметь услуги AngularJS или нет. Мы придумали некоторые аргументы за и против, и я хотел получить дополнительные мысли и отзывы по этому вопросу. В моем поиске я нашел этот, но, похоже, не существует какой-либо четкой передовой практики. В мире клиентской стороны служба никогда не должна оставаться в состоянии, но я начинаю думать, что она может быть приемлемой на стороне клиента, потому что у нее другая проблема.
Причины для состояния обслуживания:
- Служба не будет доступна для нескольких потоков. Каждый браузер будет иметь свой собственный экземпляр службы.
- Позволяет службе сохранять состояние только в этом случае, а не хранить его в корневой системе. инкапсулирует
Причины, по которым службы не сохраняются:
- Сервисы больше не являются идемпотентными. Функции вызова могут изменять состояние и, следовательно, могут иметь разные результаты при вызове на основе состояния службы.
- Я бы подумал, что в целом это было бы легче протестировать.
Один из способов, который мог бы адресовать номер 2 в разделе "Состояние обслуживания", - это иметь объект appState, установленный на rootScope, который содержит текущее состояние приложения. Тогда все государство будет собрано в одном месте, а затем вы просто вытащите то, что вам нужно, в вашем сервисе. Я нашел это и задавался вопросом