我搜索了几天但一直无法得到解决方案。我认为这个问题是特定于代码的。 我是角色新手并使用角度1.6。
抱歉,我的帖子是这样的,这是我关于堆栈溢出的第一篇文章
var app = angular.module('productApp', []);
app.controller('myController', function($scope, $http){
$http.get("http://localhost/js/database.json")
.then(function(response){
$scope.datad = response.products;
return $scope.datad;
})
})
//database.json file
{
"products": [
{
"name": "toy z",
"price" : "1999",
"image":"toys/007.png",
"category": "Toys"
},
{
"name": "Magic Swan",
"price" : "200",
"image":"toys/006.png",
"category": "Toys"
},
{
"name": "Ben10 Watch",
"price" : "499",
"image":"toys/005.png",
"category": "Toys"
}
]
}

<html lang="en">
<body ng-app="productApp">
<div ng-controller="myController" >
<ul>
<li ng-repeat="p in datad">
{{p.name}} {{p.price}}
</li>
</ul>
</div>
<script src="/js/angular.min.js"></script>
<script src="/js/angular-route.min.js"></script>
<script src="../js/jquery-3.3.1.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/main.js"></script>
<script src="/js/app.js"></script>
</body>
</html>
&#13;
答案 0 :(得分:0)
首先,确保database.json的url可以使用相对路径,例如下面的代码。
你需要改变
$scope.datad = response.products;
到
$scope.datad = response.data.products;
响应对象包含有关http请求的所有信息,结果将进入数据对象。
最后无需返回$ scope.datat,因为产品已分配到范围。
$http.get("./database.json")
.then(function(response){
console.log(response);// print response to check.
$scope.datad = response.data.products;
})