If the chrome dev tools are showing a red status, then the error isn't in
your promise handling, it's in the actual fetching of the file - that file
isn't being properly served by your backend, or isn't being served the way
you think it is (you may need to set cookies or a token to access it, etc -
it depends on your server setup).

e


On Fri, Sep 5, 2014 at 11:48 AM, mark goldin <[email protected]> wrote:

> Tools will show the same info even if I try to access non existent file.
>
>
> On Friday, September 5, 2014 1:43:35 PM UTC-5, mark goldin wrote:
>>
>> The url is correct, I am not fully showing it.
>> In the Tools the file is in Red.Status text Canceled. Can't see any more
>> info about failure.
>>
>> On Friday, September 5, 2014 1:34:28 PM UTC-5, Eric Eslinger wrote:
>>>
>>> You can just treat $http.get() as a promise. You don't have to directly
>>> instantiate a second promise unless you're doing something funky.
>>>
>>> return $http.get().then(function(data){return 
>>> massageData(data)}).catch(function(err){at
>>> least you have some error handling})
>>>
>>> Also, if you're getting an error, what's the failed? At the very least,
>>> I'm 99.9% sure that http://localhost:/localfile.txt is an incorrect
>>> url. Don't you have to put a port after a : in a host definition? so either
>>> localhost/localfile or localhost:3000/localfile. So it could be that your
>>> $http.get is just failing. You can get more information on this in the
>>> chrome debug tools - look at your network requests, and it should show the
>>> localfile.txt XHR, and either be black (success!) or red (fails!) and have
>>> more information there.
>>>
>>> e
>>>
>>>
>>> On Fri, Sep 5, 2014 at 10:54 AM, mark goldin <[email protected]> wrote:
>>>
>>>> Actually I am rather getting alert that says Error.
>>>>
>>>>
>>>> On Friday, September 5, 2014 12:52:33 PM UTC-5, mark goldin wrote:
>>>>>
>>>>> Ok, I have changed my code. Here it is:
>>>>>
>>>>> Service
>>>>> angular.module('myModule').factory("service", function ($http, $q) {
>>>>>
>>>>>     var requestUri = 'http://localhost:/localfile.txt';
>>>>>     return {
>>>>>         getData : function(){
>>>>>             var deferred = $q.defer();
>>>>>             var response = $http.get(requestUri);
>>>>>             response.success(function (data) {
>>>>>                 deferred.resolve(data);
>>>>>             });
>>>>>             response.error(function (data) {
>>>>>                 alert('Error');
>>>>>             });
>>>>>             // Return the promise to the controller
>>>>>             return deferred.promise;
>>>>>         }
>>>>>     }
>>>>> });
>>>>>
>>>>> Controller:
>>>>> var promise = service.getData();
>>>>>     $scope.data = promise.then(function (data) {
>>>>>         alert('Success: ' + data);
>>>>>     }, function (reason) {
>>>>>         alert('Failed: ' + reason);
>>>>>     }
>>>>>     );
>>>>> When I run it I get the alert that says Failed ...
>>>>>
>>>>> BTW, if I change my service to this:
>>>>> getData : function(){
>>>>>             var deferred = $q.defer();
>>>>>             deferred.resolve('1234');
>>>>>             return deferred.promise;
>>>>>         }
>>>>> Then I get Success
>>>>>
>>>>> On Friday, September 5, 2014 11:32:42 AM UTC-5, Thomas Murphy wrote:
>>>>>>
>>>>>> Great, so let's focus on what's happening in the controller. As
>>>>>> Sander said, you're returning a promise from you service. *That
>>>>>> promise needs to be resolved. *Check out the documentation here on
>>>>>> the syntax, and see if it doesn't provide you the data you're expecting.
>>>>>> https://docs.angularjs.org/api/ng/service/$q
>>>>>>
>>>>>> Feel free to paste in a bit more of your controller code too.
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 5, 2014 at 12:28 PM, mark goldin <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> 1. serviceName.getData();
>>>>>>> 2. The url points to a text file on the local web server. Navigating
>>>>>>> from Browser to the file opens it with no problem.
>>>>>>>
>>>>>>> On Friday, September 5, 2014 9:58:27 AM UTC-5, Thomas Murphy wrote:
>>>>>>>>
>>>>>>>> 1. What are you doing in the controller once you call
>>>>>>>> serviceName.getData()?
>>>>>>>> 2. What url are you calling in $http.get? If you're not calling
>>>>>>>> anything, you'll get no data.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Thomas
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Sep 5, 2014 at 10:49 AM, mark goldin <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I also found this code:
>>>>>>>>>  function ($http, $q) {
>>>>>>>>>   return {
>>>>>>>>>         getData : function(){
>>>>>>>>>             var deferred = $q.defer();
>>>>>>>>>             var promise = $http.get(url).success(function
>>>>>>>>> (response) {
>>>>>>>>>                 deferred.resolve(response);
>>>>>>>>>             });
>>>>>>>>>             // Return the promise to the controller
>>>>>>>>>             return deferred.promise;
>>>>>>>>>         }
>>>>>>>>>     }
>>>>>>>>>
>>>>>>>>> and in controller to get data: serviceName.getData();
>>>>>>>>>
>>>>>>>>> but I get no data. Can you please explain why is not working?
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Friday, September 5, 2014 9:39:49 AM UTC-5, mark goldin wrote:
>>>>>>>>>>
>>>>>>>>>> Ok, I see how it works.
>>>>>>>>>> Another question. Is it possible to have just one function 
>>>>>>>>>> *MyTestService
>>>>>>>>>> *and run it like this?
>>>>>>>>>> <div ng-controller='*MyTestService *as vm'>
>>>>>>>>>>        <p>the result from the service load:</p>
>>>>>>>>>>        <pre>{{vm.data|json}}</pre>
>>>>>>>>>>     </div>
>>>>>>>>>>
>>>>>>>>>> On Friday, September 5, 2014 9:28:42 AM UTC-5, mark goldin wrote:
>>>>>>>>>>>
>>>>>>>>>>> What vm.data shown in index.html would come from if I remove the
>>>>>>>>>>> TestMyService function?
>>>>>>>>>>>
>>>>>>>>>>> On Friday, September 5, 2014 1:32:11 AM UTC-5, Sander Elias
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Mark,
>>>>>>>>>>>>
>>>>>>>>>>>> You mean something like this: http://plnkr.co/edit/5cE
>>>>>>>>>>>> NSfOAhKJDI0iwe6ZV?p=preview
>>>>>>>>>>>>
>>>>>>>>>>>> Regards
>>>>>>>>>>>> Sander
>>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>> 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.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>> 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.
>>>>>>>
>>>>>>
>>>>>>  --
>>>> 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.
>>>>
>>>
>>>  --
> 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.
>

-- 
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.

Reply via email to