$http returns a decorated promise which cannot be used within the routing
system (as dependencies that should be resolved before switching route).
Which is very unfortunate because it creates unnecessarily complicated code.
On Monday, 22 December 2014 06:52:31 UTC+1, Darlan Alves wrote:
>
> It's not so obvious in AngularJS, but you don't need to use $q.defer() to
> return promises. Instead just make a service like this one:
>
>
> angular.module('bla').factory('StudentService', StudentService);
>
> function StudentService($q, $http) {
>
> function getStudent(id) {
> if (!id) {
> return $q.reject(new Error('Invalid id'));
> }
>
> return $http.get('/student/' + id);
> }
>
> return {
> getStudent: getStudent
> };
> }
>
> I started with AngularJS about a year ago and just realized that a few
> months later. It was there on my face all the time :p
>
>
> On Saturday, December 20, 2014 12:30:30 PM UTC-2, sudheer reddy wrote:
>>
>> Hi,
>>
>> I am resolving a promise on getting student detail of a particular id. If
>> i go back and click edit on other id, the edit page still renders previous
>> one because of promise is saving its state.
>>
>> How to resolve this.
>>
>> return{
>> getStudent:
>> function (id) {
>> $http.get('api/movies/' + id)
>> .success(function (response)
>> {
>> defferedq.resolve(response);
>> }).error(function (error)
>> {
>> defferedq.reject(error);
>> });
>>
>>
>> return defferedq.promise;
>> }
>> }
>>
>>
>>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.