I'd be willing to put a bit of money on it throwing a CORS if you're not running your angular app against a server.
On Fri, Sep 5, 2014 at 2:50 PM, Eric Eslinger <eric.eslin...@gmail.com> wrote: > 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 <markzolo...@gmail.com> > 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 <markz...@gmail.com> >>>> 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 <markz...@gmail.com> >>>>>>> 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 <markz...@gmail.com> >>>>>>>>> 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 angular+u...@googlegroups.com. >>>>>>>>>> To post to this group, send email to ang...@googlegroups.com. >>>>>>>>>> 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 angular+u...@googlegroups.com. >>>>>>>> To post to this group, send email to ang...@googlegroups.com. >>>>>>>> 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 angular+u...@googlegroups.com. >>>>> To post to this group, send email to ang...@googlegroups.com. >>>>> 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 angular+unsubscr...@googlegroups.com. >> To post to this group, send email to angular@googlegroups.com. >> 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 angular+unsubscr...@googlegroups.com. > To post to this group, send email to angular@googlegroups.com. > 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 angular+unsubscr...@googlegroups.com. To post to this group, send email to angular@googlegroups.com. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.