2017-01-19 2 views
0

angular 1.6.1 удалил .success и .error в обслуживании $http для использования .then и .catch. Теперь мой ответ: Имеет смысл, что я написал в своем коде? потому что теперь я смущен от того, как переговоры диспетчера в службууглового запроса 1.6.1 HTTP от службы

У меня есть контроллер для входа в систему (например): LoginCTRL

User.login(data).then(
    function(response){ 
     //do something  
    },function(err){ 
    //do somethig 
}); 

И у меня есть службы пользователя:

myapp.service('User', function User($q, $http) { 
    return { 
      login: function(credentials){ 
       return $http.post('login',{data:data}).then(function onSuccess(response) { 
        return response; 
       }).catch(function onError(response){ 
        return response; 
       }); 
      }, 
} 

Правильно пишите service.method(). Затем в контроллере, теперь, когда больше нет $q.defer().resolve(data) или $q.defer().reject(reason)

+0

вы не используете 'credentials' в функции линии входа' $ http.post ('Войти', {данных: данные}) 'и также вам нужно просто вернуть '$ http.post ('login', {data: credentials})' –

+0

Да Извините, мой ответ не о коде, а о логике, он используется. Затем в контроллере После вызова В оказание услуг? – LorenzoBerti

+0

Не уверен, я думаю, что 'User.login (data)' в конечном итоге вернет вам ответ от запроса. При этом я не могу найти причину добавления '.then (callback)'. – Korte

ответ

0

попробовать:

myapp.service('User', function User($q, $http) { 
 
     return { 
 
     login: function(credentials) { 
 
      var deferred = $q.defer(); 
 
      $http.post('login', { 
 
      data: data 
 
      }).then(onSuccess, onFailure); 
 

 
      function onSuccess(response) { 
 
      deferred.resolve(response); 
 
      } 
 

 
      function onFailure(response) { 
 
      deferred.reject(response); 
 
      } 
 
      return deferred.promise; 
 
     } 
 
     } 
 
    }

+0

Это [отложенный антипаттерн] (https://github.com/ petkaantonov/Блюберды/вики/Promise-антишаблоны #-отложенный антишаблон). – estus

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