2014-09-29 10 views
0

Я создал угловой сервис содержит этот код:Используйте успех и ошибки в угловом службе или контроллере

authenticationAPI.login = function() { 
      return $http({ 
       method: 'GET', 
       timeout: 10000, 
       url:'http://serverName/apiName/Login', 
       params : {userName : 'User', 
          password : '12345'} 
      }); 

Так, в настоящее время «authenticationController» использует «логин» метод этого сервиса и обработку .success и само по себе.

Одна из причин, по которой я решил обработать ее внутри контроллера, заключается в том, чтобы решить, что делать с html (показать предупреждение, изменить некоторые элементы) из контроллера, когда встречается ошибка, например.

Но, я новичок в угловом и не уверен, что это лучшая практика для обработки запроса.

Можете ли вы помочь мне выяснить, должен ли я обращаться с этой логикой в ​​службе или контроллере?

+0

Лично я сделал то же самое, что и вы, - вернул обещание и обработал результат где-нибудь, где имеет смысл отображать результат для пользователя. Я не вижу проблемы с этим. – Fordio

+0

Дело в том, что я пытался прочитать об этом и не смог найти описательное сообщение, в котором говорится о лучших практиках для этого. И я был бы рад узнать, подходит ли тот путь, который я выбрал. – FelProNet

ответ

0

Я думаю, все зависит от того, что связано с обработкой логики отложенных. Я сделал и то, и другое - пусть служба обрабатывает задержку и позволяет контроллеру обрабатывать отложенные. Я думаю, что решающим фактором должно быть:

Является ли отложенная логика чем-то, что бы обновило представление/пользовательский интерфейс? Затем обрабатывайте его в контроллере

Является ли отложенная логика чем-то, что будет обновлять данные, которые в противном случае могли бы использоваться другими поставщиками или контроллерами? Затем обработайте его в сервисе.

В вашем случае это звучит как его логика вида, которая нуждается в обработке, поэтому я думаю, что контроллер в порядке.

+0

Как правило, вы говорите, что это не черный и белый. Вы говорите, что в том же угловом приложении отлично справляется с обещанием иногда в контроллере и в других случаях в обслуживании. Не нужно всегда находиться на контроллере или всегда на службе в одном приложении? – FelProNet

+0

По-моему, да. Ничто никогда не бывает черным или белым. Я сделал это, используя оба подхода самостоятельно во многих приложениях. – sma

 Смежные вопросы

  • Нет связанных вопросов^_^