使用 ng-repeat 循环遍历具有唯一 ID 的 JSON 文件
Loop through the JSON file which has a unique ID with ng-repeat
我在循环 JSON 文件时遇到问题。 Ng-repeat 通过数据数组,其中每个字段都有一个唯一的 id。
var fullData = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}
<div ng-repeat="data in fullData.data">
{{ data[$index]}}
</div>
这个解决方案似乎有效。
这样试试。
var app = angular.module('app',[])
app.controller('ctrl',function($scope){
$scope.data = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<div ng-repeat="(key,value) in data.data">
<div ng-repeat="(k,v) in value">
{{v.price}}:
{{v.source}}
</div>
</div>
</div>
您应该在控制器中使用 $scope 变量来绑定数据,像这样更改您的代码,
控制器
app.controller("DemoCtrl", ["$scope",
function($scope) {
$scope.fullData = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}
}
]);
HTML
<body ng-app='app'>
<div class="media-list" ng-controller="DemoCtrl">
<div ng-repeat=" data in fullData.data ">
{{data}}
</div>
</div>
</body>
DEMO
正如我在评论中提到的,不要使用
var fulData
使用
$scope.fullData
这将自动绑定视图中的值
像你一样
{{ data[$index]}}
不是在 ng-repeat 中访问的方式数据本身就足够访问这样
<div ng-repeat="data in fullData.data">
{{$index}}
{{ data}}
</div>
这里是js代码
$scope.fullData = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}
我在循环 JSON 文件时遇到问题。 Ng-repeat 通过数据数组,其中每个字段都有一个唯一的 id。
var fullData = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}
<div ng-repeat="data in fullData.data">
{{ data[$index]}}
</div>
这个解决方案似乎有效。
这样试试。
var app = angular.module('app',[])
app.controller('ctrl',function($scope){
$scope.data = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<div ng-repeat="(key,value) in data.data">
<div ng-repeat="(k,v) in value">
{{v.price}}:
{{v.source}}
</div>
</div>
</div>
您应该在控制器中使用 $scope 变量来绑定数据,像这样更改您的代码,
控制器
app.controller("DemoCtrl", ["$scope",
function($scope) {
$scope.fullData = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}
}
]);
HTML
<body ng-app='app'>
<div class="media-list" ng-controller="DemoCtrl">
<div ng-repeat=" data in fullData.data ">
{{data}}
</div>
</div>
</body>
DEMO
正如我在评论中提到的,不要使用
var fulData
使用
$scope.fullData
这将自动绑定视图中的值
像你一样
{{ data[$index]}}
不是在 ng-repeat 中访问的方式数据本身就足够访问这样
<div ng-repeat="data in fullData.data">
{{$index}}
{{ data}}
</div>
这里是js代码
$scope.fullData = {
data: [{
505: {
price: "505",
source: "Amazon"
},
456: {
price: "4555",
source: "Jet"
}
}]
}