Javascript AngularJS从JSON本地文件获取数据
使用以下结构从json文件检索数据时遇到问题。 在我的controller.js文件中,我有:Javascript AngularJS从JSON本地文件获取数据,javascript,jquery,angularjs,json,Javascript,Jquery,Angularjs,Json,使用以下结构从json文件检索数据时遇到问题。 在我的controller.js文件中,我有: var controllers = angular.module('hotels.controllers', []); controllers.controller('AppCtrl', function ($scope, $http){ $scope.list; $http.get('json-folder/name.json').success(function(data, st
var controllers = angular.module('hotels.controllers', []);
controllers.controller('AppCtrl', function ($scope, $http){
$scope.list;
$http.get('json-folder/name.json').success(function(data, status, headers, config) {
$scope.list = data.data;
console.log(data);
});
在该name.json文件中,我有以下结构:
{
"hotel": [
{
"id": 1,
"name": "Some hotel name",
"address": "123 Street",
"category" : [{
"id": 1,
"name" : "Category 1",
"bnb" : "yes",
"simple" : "some value",
"double" : "another value"
},
{
"id": 2,
"name" : "Category 2",
"bnb" : "no",
"simple" : "some value 2",
"double" : "another value 2"
},
{
"id": 3,
"name" : "Category 3",
"bnb" : "no",
"simple" : "some value 3",
"double" : "another value 3"
}
]
},
{
"id": 2,
"name": "Some hotel name 2",
"address": "33333 Street",
"category" : [{
"id": 1,
"name" : "Category 1",
"bnb" : "yes",
"simple" : "some value",
"double" : "another value"
},
{
"id": 2,
"name" : "Category 2",
"bnb" : "no",
"simple" : "some value 2",
"double" : "another value 2"
},
{
"id": 3,
"name" : "Category 3",
"bnb" : "no",
"simple" : "some value 3",
"double" : "another value 3"
}
]
}
],
"motel": [
{
"id": 1,
"name": "Some motel name",
"address": "321 Street",
"category" : [{
"id" : 1,
"name" : "Category Motel 1",
"bnb" : "yes",
"simple" : "some motel value",
"double" : "another motel value"
},
{
"id" : 2,
"name" : "Category Motel 2",
"bnb" : "no",
"simple" : "some motel value 2",
"double" : "another motel value 2"
}
]
}
]
}
<div ng-controller="AppCtrl">
<ul class="pull-left">
<li class="pull-left" ng-repeat="hotel in list.hotels">
{{hotel.name}}
</li>
</ul>
</div>
<div ng-controller="CatCtrl">
<ul class="pull-right">
<li class="pull-right" ng-repeat="cat in list.categories">
{{cat.name}}
</li>
</ul>
</div>
最后是我的html结构:
{
"hotel": [
{
"id": 1,
"name": "Some hotel name",
"address": "123 Street",
"category" : [{
"id": 1,
"name" : "Category 1",
"bnb" : "yes",
"simple" : "some value",
"double" : "another value"
},
{
"id": 2,
"name" : "Category 2",
"bnb" : "no",
"simple" : "some value 2",
"double" : "another value 2"
},
{
"id": 3,
"name" : "Category 3",
"bnb" : "no",
"simple" : "some value 3",
"double" : "another value 3"
}
]
},
{
"id": 2,
"name": "Some hotel name 2",
"address": "33333 Street",
"category" : [{
"id": 1,
"name" : "Category 1",
"bnb" : "yes",
"simple" : "some value",
"double" : "another value"
},
{
"id": 2,
"name" : "Category 2",
"bnb" : "no",
"simple" : "some value 2",
"double" : "another value 2"
},
{
"id": 3,
"name" : "Category 3",
"bnb" : "no",
"simple" : "some value 3",
"double" : "another value 3"
}
]
}
],
"motel": [
{
"id": 1,
"name": "Some motel name",
"address": "321 Street",
"category" : [{
"id" : 1,
"name" : "Category Motel 1",
"bnb" : "yes",
"simple" : "some motel value",
"double" : "another motel value"
},
{
"id" : 2,
"name" : "Category Motel 2",
"bnb" : "no",
"simple" : "some motel value 2",
"double" : "another motel value 2"
}
]
}
]
}
<div ng-controller="AppCtrl">
<ul class="pull-left">
<li class="pull-left" ng-repeat="hotel in list.hotels">
{{hotel.name}}
</li>
</ul>
</div>
<div ng-controller="CatCtrl">
<ul class="pull-right">
<li class="pull-right" ng-repeat="cat in list.categories">
{{cat.name}}
</li>
</ul>
</div>
-
{{hotel.name}
-
{{cat.name}
我没有得到任何回报,也没有任何错误。。。
我想要的是一个ul li和酒店名称,在另一个类似的部门,我想再次列出类别名称以及酒店下类别的其他数据。请注意,CatCtrl与AppCtrl相同
知道我在第一个控制器上做错了什么吗?我应该在另一个控制器上做些什么来得到我需要的
谢谢。既然您正确地理解了第一部分,那么获取类别需要将代码更改为:
<div ng-controller="AppCtrl">
<ul class="pull-left">
<li class="pull-left" ng-repeat="hotel in list.hotel">
{{hotel.name}}
<ul class="pull-right">
<li class="pull-right" ng-repeat="cat in hotel.category">
{{cat.name}}
</li>
</ul>
</li>
</ul>
</div>
-
{{hotel.name}
-
{{cat.name}
我将依靠您的CSS技能来正确安排显示。不应该改为
$scope.list=data.data
吗<代码>数据应该是JSON本身,并且列表
没有属性酒店
或类别
。。它有酒店
和汽车旅馆
。一点也不清楚你想要什么类别
数组看起来像一些微小的变化:@lucasnadalutti如果我删除这些数据,我会得到第一个correct@charlietfl好的,我想循环浏览酒店类别并在页面上显示它们。我已经有了第一个建议中的名字。我在编辑器中遇到了这个错误:未解析变量hotel。请尝试list.hotels
。在原始代码中,您使用了list.hotels
,但您提供的JSON中的属性是hotel
,因此我不确定。可能与category
/categories
相同。好吧,我做了更改,但什么也没发生,我将s添加到了酒店,所以现在是json格式的酒店,还有汽车旅馆。。。下一步我应该试试什么?我在页面上没有得到任何关于类别的输出…请注意category
中的category
在您的JSON中,category也应该与每个hotel
中的category
相同。如果属性名称为类别
,则也应相应更改。即使如此,没有运气?还是没有什么,所以在JSON中,我有酒店
而不是酒店
和类别
而不是类别
,然后我有了你说的:ng repeat=“cat in hotels.categories”
,最后我没有得到任何回报。