Должен ли я использовать angularjs $ http сервис для запросов или jquery ajax, если это возможно?

В моем проекте я использую фреймворк angularjs и люблю использовать сервис ---- +: = 0 =: + ---- всякий раз, когда я совершаю вызов ajax.Но в тех частях проекта, где пользовательский интерфейс не обновляется напрямую с помощью вызова ajax и привязки angularjs не требуются, я должен использовать ---- +: = 1 =: + ---- сервис или обычный ----+: = 2 =: + ---- ?Говоря более конкретно, я должен минимизировать зависимости angularjs в моем проекте, где пользовательский интерфейс не касается, или плотно обернуть весь проект угловыми службами и директивами?
4 голоса | спросил arghya 23 72014vEurope/Moscow11bEurope/MoscowSun, 23 Nov 2014 22:57:34 +0300 2014, 22:57:34

4 ответа


0
Если вы используете Angularjs, то вам следует использовать $ http в качестве предпочтительного метода выполнения вызовов ajax.Необязательно, чтобы эта служба была привязана к пользовательскому интерфейсу или влияла на пользовательский интерфейс.Вы должны использовать вызовы Jquery Ajax только в том случае, если вы не можете выполнить действие с использованием сервисов angular, что будет редкостью, если вы будете следовать рекомендациям angularjs.Кроме того, если вы используете службы http, у вас могут быть перехватчики, которые создают запросы и обрабатывают ответ до того, как они будут переданы на успешную часть вызова.Они используются для обработки глобальных ошибок и отображения глобальных уведомлений, которые, скажем, могут прийти в любом ответе.Кроме того, вы можете добавить заголовки и дополнительную информацию перед каждым запросом здесь.Также вы можете закодировать /декодировать запрос /ответ, чтобы все эти служебные функции выполнялись в одном месте.Проверьте ссылку ниже для этого: http сервисный документ с перехватчикамиЕсли вам все же нужно вызвать $ http из внешней угловой среды, которую вы должны избегать, создайте общую служебную функцию angular и включите ее в некоторую функцию, которую вы можете вызвать напрямую.
ответил Kop4lyf 23 72014vEurope/Moscow11bEurope/MoscowSun, 23 Nov 2014 23:36:55 +0300 2014, 23:36:55
0
Я лично рекомендовал бы поддерживать его в соответствии с общим сервисным уровнем, который инкапсулирует запросы HTTP.Хотя вы можете смешивать это, я рекомендую делать это, только если вы имеете дело с кодом, который уже был написан с помощью jquery.Кроме того, если вы захотите изменить его позже для обновления пользовательского интерфейса, вам придется вернуться и изменить вызовы jquery.Еще одно замечание, которое уже высказал Блейз, заключается в том, что $ http действительно блестит, если вы проводите модульное тестирование и хотите высмеивать ответы.Вот пример этого: http://www.unit-testing.net/CurrentArticle/How-to-mock-http-calls-in-Angular.html
ответил TGH 23 72014vEurope/Moscow11bEurope/MoscowSun, 23 Nov 2014 23:28:33 +0300 2014, 23:28:33
0
Если Ajax-запрос не взаимодействует с пользовательским интерфейсом, это не имеет значения.$ http подобен Ajax-запросу, большая разница - регистр $ http в цикле дайджеста, который обновляет пользовательский интерфейс новыми данными.Если нет необходимости в обновлении пользовательского интерфейса, вы можете использовать все, что вас радует.
ответил Avi 23 72014vEurope/Moscow11bEurope/MoscowSun, 23 Nov 2014 23:08:38 +0300 2014, 23:08:38
0
Вы должны использовать угловую инфраструктуру, это настоятельно рекомендуется.Существует хорошее введение для разработчиков jQuery в Angular http://www.ng-newsletter.com/posts/angular-for-the-jquery-developer.htmlОбсуждаются различия между $ http против $ .ajax Angularjs $ http VS jquery $ .ajax от jquery $ .ajax до angular $ httpБолее того, использование jQuery с Angular может привести к некоторым проблемам, например, https://github.com/angular/angular.js/issues/2548 (jQuery приводит к некорректной работе ngClick с сенсорными устройствами).
ответил Gleb Vinnikov 23 72014vEurope/Moscow11bEurope/MoscowSun, 23 Nov 2014 23:23:47 +0300 2014, 23:23:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132