Using $http to read json from a file:
(function(){
var countryApp=angular.module("countryApp",[]);
countryApp.controller("CountryCtrl",function($scope,$http){
$http.get('countries.json').success(function(data){
$scope.countries=data;
});
});
return countryApp;
})();
The file is in the same folder as the html file,it looks like this:
[
{
"name": "China",
"population": 135982100
},
{
"name": "India",
"population": 1205625000
},
{
"name": "United States of America",
"population": 312247000
}
]
This is the error:
XMLHttpRequest cannot load file:///home/anr/angular_examples/countries.json. Cross origin requests are only supported for HTTP. ex10.html:1
Error: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///home/anr/angular_examples/countries.json'.
at Error (native)
at file:///home/anr/angular_examples/js/angular.js:8380:11
at sendReq (file:///home/anr/angular_examples/js/angular.js:8180:9)
at $http.serverRequest (file:///home/anr/angular_examples/js/angular.js:7921:16)
at wrappedCallback (file:///home/anr/angular_examples/js/angular.js:11319:81)
at wrappedCallback (file:///home/anr/angular_examples/js/angular.js:11319:81)
at file:///home/anr/angular_examples/js/angular.js:11405:26
at Scope.$eval (file:///home/anr/angular_examples/js/angular.js:12412:28)
at Scope.$digest (file:///home/anr/angular_examples/js/angular.js:12224:31)
at Scope.$apply (file:///home/anr/angular_examples/js/angular.js:12516:24) angular.js:9778
Tried to create a simple Node server:
var express=require('express');
var app=express();
app.use(express.static('../'));
app.listen(3000);
Still getting this error:
XHR finished loading: GET "http://localhost:3000/countries.json". angular.js:8380
Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: country in countries, Duplicate key: string:"
http://errors.angularjs.org/1.2.16/ngRepeat/dupes? p0=country%20in%20countries&p1=string%3A%22
at http://localhost:3000/js/angular.js:78:12
at ngRepeatAction (http://localhost:3000/js/angular.js:20025:20)
at Object.$watchCollectionAction [as fn] (http://localhost:3000/js/angular.js:12128:13)
at Scope.$get.Scope.$digest (http://localhost:3000/js/angular.js:12251:29)
at Scope.$get.Scope.$apply (http://localhost:3000/js/angular.js:12516:24)
at done (http://localhost:3000/js/angular.js:8204:45)
at completeRequest (http://localhost:3000/js/angular.js:8412:7)
at XMLHttpRequest.xhr.onreadystatechange (http://localhost:3000/js/angular.js:8351:11) angular.js:9778