I'd take the actual file and shove it through a json linter if I were you,
or look more closely at the object actually getting returned by the XHR
request (you can see the response in devtools).


On Fri, Sep 5, 2014 at 1:03 PM, mark goldin <[email protected]> wrote:

> BAsically, it's something like this:
> { "name": "Hartsfield Jackson Atlanta International Airport", "code":
> "ATL", "city": "Atlanta", "state": "GA", "lat": 33.64, "lon": -84.444,
> "pop2011": 432427, "vol2011": 44414121, "vol2010": 43130585, "vol2009":
> 42280868, "vol2008": 43236665, "vol2007": 43236665, "vol2006": 41352038,
> "vol2005": 42402653 }
>
> On Friday, September 5, 2014 3:01:33 PM UTC-5, Thomas Murphy wrote:
>>
>> Show us the contents of the data file please. Looks like a JSON parse
>> error.
>>
>>
>> On Fri, Sep 5, 2014 at 3:54 PM, mark goldin <[email protected]> wrote:
>>
>>> Controller:
>>> $http.get(url).then(function (data) { console.log('1234');
>>> }).catch(function (err) { console.log('5678') });
>>>
>>> Tools Console:
>>> SyntaxError: Unexpected token ,
>>>     at Object.parse (native)
>>>     at fromJson (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/
>>> angular.js:1033:14)
>>>     at $HttpProvider.defaults.defaults.transformResponse (
>>> http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js:6749:18)
>>>     at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/
>>> angular.js:6724:12
>>>     at Array.forEach (native)
>>>     at forEach (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/
>>> angular.js:300:11)
>>>     at transformData (http://ajax.googleapis.com/
>>> ajax/libs/angularjs/1.2.0/angular.js:6723:3)
>>>     at transformResponse (http://ajax.googleapis.com/
>>> ajax/libs/angularjs/1.2.0/angular.js:7387:17)
>>>     at wrappedCallback (http://ajax.googleapis.com/
>>> ajax/libs/angularjs/1.2.0/angular.js:10549:81)
>>>     at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/
>>> angular.js:10635:26 angular.js:9037
>>> 5678
>>>
>>> On Friday, September 5, 2014 2:41:32 PM UTC-5, Eric Eslinger wrote:
>>>>
>>>> In your controller, just call 
>>>> $http.get(url).then(function(data){$scope.myData
>>>> = data.data}).catch(function(err){console.log(err)});
>>>>
>>>> In simple cases, I prefer just calling $http.get directly. In more
>>>> complicated cases, it makes sense to put that behind an abstraction layer
>>>> (if you're cache-ing calls, or you do a lot of hits on the same URL and
>>>> want to use singletons to keep control of which url gets hit, etc etc). But
>>>> that's just IMO. The important point (that a lot of people seem to miss in
>>>> the documentation) is that the .success and .error callbacks on $http are
>>>> not needed - the return values from $http calls are all promises which
>>>> conform to the standard spec, so you can just .then chain from there.
>>>>
>>>> e
>>>>
>>>>
>>>> On Fri, Sep 5, 2014 at 12:23 PM, mark goldin <[email protected]>
>>>> wrote:
>>>>
>>>>> <return $http.get().then(function(data){return
>>>>> massageData(data)}).catch(function(err){at least you have some error
>>>>> handling})
>>>>> How do I consume that in my Controller if there is no function
>>>>> (getData()) anymore?
>>>>>
>>>>>
>>>>> On Friday, September 5, 2014 2:14:22 PM UTC-5, mark goldin wrote:
>>>>>>
>>>>>> Jumped to conclusion too quickly. The file is in black now, but the
>>>>>> error is still there.
>>>>>>
>>>>>> On Friday, September 5, 2014 2:06:34 PM UTC-5, mark goldin wrote:
>>>>>>>
>>>>>>> That was it! Added it to my web.config and no more errors.
>>>>>>> Thanks for the help.
>>>>>>>
>>>>>>> On Friday, September 5, 2014 1:54:39 PM UTC-5, Thomas Murphy wrote:
>>>>>>>>
>>>>>>>> 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 <[email protected]>
>>>>>>>> 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 <[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/op
>>>>>>>>>>>>>>>>>> tout.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  --
>>>>>>>>>>>>>>>> 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.
>>>>>
>>>>
>>>>  --
>>> 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