我正在使用AngularJS,我想动态获取价格的价值,我的意思是从url json数据中获取它。这可能![/ p>
这是 url json :url
这是我的控制器:
angular.module("myApp",['zingchart-angularjs']).controller('MainController', ['$scope', '$http', function($scope, $http) {
$scope.cities =[{
"name": "city A",
"elements": [{
"id": "c01",
"name": "name1",
"price": "15",//I want to get this price from the url json: [url][1]. Get it from the value of prix_diesel attribute
"qte": "10" //I want to get this price from the url json. Get it from the value of prix_essence attribute
}, {
"id": "c02",
"name": "name2",
"price": "18",
"qte": "11"
}, {
"id": "c03",
"name": "name3",
"price": "11",
"qte": "14"
}],
"subsities": [{
"name": "sub A1",
"elements": [{
"id": "sub01",
"name": "nameSub1",
"price": "1",
"qte": "14"
}, {
"id": "sub02",
"name": "nameSub2",
"price": "8",
"qte": "13"
}, {
"id": "sub03",
"name": "nameSub3",
"price": "1",
"qte": "14"
}]
}, {
"name": "sub A2",
"elements": [{
"id": "ssub01",
"name": "nameSsub1",
"price": "1",
"qte": "7"
}, {
"id": "ssub02",
"name": "nameSsub2",
"price": "8",
"qte": "1"
}, {
"id": "ssub03",
"name": "nameSsub3",
"price": "4",
"qte": "19"
}]
}, {
"name": "sub A3",
"elements": [{
"id": "sssub01",
"name": "nameSssub1",
"price": "1",
"qte": "11"
}, {
"id": "sssub02",
"name": "nameSssub2",
"price": "2",
"qte": "15"
}, {
"id": "sssub03",
"name": "nameSssub3",
"price": "1",
"qte": "15"
}]
}]
}, {
"name": "city B",
"elements": [{
"id": "cc01",
"name": "name11",
"price": "10",
"qte": "11"
}, {
"id": "cc02",
"name": "name22",
"price": "14",
"qte": "19"
}, {
"id": "cc03",
"name": "name33",
"price": "11",
"qte": "18"
}]
}, {
"name": "city C",
"elements": [{
"id": "ccc01",
"name": "name111",
"price": "19",
"qte": "12"
}, {
"id": "ccc02",
"name": "name222",
"price": "18",
"qte": "17"
}, {
"id": "ccc03",
"name": "name333",
"price": "10",
"qte": "5"
}]
}]
$scope.extractSubsities = function(itemSelected) {
if(itemSelected && itemSelected.elements){
$scope.data = itemSelected.elements;
}
}
$http.jsonp("http://total.smarteez.eu/submit/?station=101507")
.then(function(data) {
if($scope.cities && $scope.cities[0] && $scope.cities[0].elements && $scope.cities[0].elements[0]){
$scope.cities[0].elements[0].price = data.data.prix.prix_diesel;
$scope.cities[0].elements[0].qte = data.data.prix.prix_essence;
}
});
}]);
我在我的plunkr中设置了它:plunker
备注:total.smarteez.eu不是我的服务器
你能帮我加载网址json中的数据吗?
更新:
当我运行我的代码时,浏览器启动了一个错误,如:
未捕获的SyntaxError:意外的令牌?station = 101507:1
编辑:
不,这不是一个重复的问题,因为我问如何从不在我的服务器中的URL json获取数据我认为我需要类似跨域请求的东西。
答案 0 :(得分:1)
我试图使用角度服务来检索信息,接下来我在Chrome控制台中获得的信息是:
XMLHttpRequest cannot load http://total.smarteez.eu/submit/?station=101507. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://<<MYIPADDRESS>>' is therefore not allowed access. The response had HTTP status code 401.
这意味着smarteez服务器无法使用CORS,我的意思是,它不允许外部连接检索数据......
你应该在smarteez服务器中启用CORS ....但是你提到它不是你的
如果我是你,我会做什么,将内容加载到带有file_get_contents()函数的PHP变量中,然后将其转换为JSON,最后将其返回到我的角度控制器< / p>