正在读取AngularJS中的JSON响应
Reading JSON Response in AngularJS
我有一个名为productImages的角度控制器,它返回以下JSON数据:
{
"Product_1":[
{ "image_id":"12469",
"name":"My Product 1 - Variety 1",
"url":"'/'/mystorefront.net'/120'/small'/1911791794.jpg"
},
{
"image_id":"12470",
"name":"My Product 1 - Variety 2",
"url":"'/'/drfuittf5cya9.cloudfront.net'/121'/small'/1911802897.jpg"
}
],
"Product_2":[
{ "image_id":"122349",
"name":"My Product 2 - Variety 1",
"url":"'/'/drfuittf5cya9.cloudfront.net'/122'/small'/1911791794.jpg"
},
{
"image_id":"123470",
"name":"191123897.jpg",
"name":"My Product 2 - Variety 2",
"url":"'/'/drfuittf5cya9.cloudfront.net'/123'/small'/1911802897.jpg"
}
]
}
在我的角度代码中,我写了:
<div ng-controller="productImages">
<div ng-repeat="product in products">
{{product.image_id}}
</div>
</div>
当我运行此程序时,ng-repeat div
会重复两次,但product.image_id不会显示。如果我改为{{product}}
或{{product.image_id}}
,我会打印出整个JSON。
如何在angularJS中打印此JSON?此外,如何打印Product_1、Producti_2?
您的对象Product_1
似乎是一个数组,而该数组又具有图像。
我认为您将需要嵌套for循环来显示图像
您尝试重复对象的属性。根据这里的文档,您必须使用
<div ng-repeat="(key, value) in myObj"> ... </div>
对象的每个属性都是一个数组,所以我认为类似于:
<div ng-repeat="(key, value) in myObj">
<div ng-repeat= "product in value">
{{product.image_id"}}
</div>
</div>
应该完成
使用两个循环作为:
angular.module('app',[]).controller('mainCtrl', function($scope){
$scope.products = {
"Product_1":[
{ "image_id":"12469",
"name":"My Product 1 - Variety 1",
"url":"'/'/mystorefront.net'/120'/small'/1911791794.jpg"
},
{
"image_id":"12470",
"name":"My Product 1 - Variety 2",
"url":"'/'/drfuittf5cya9.cloudfront.net'/121'/small'/1911802897.jpg"
}
],
"Product_2":[
{ "image_id":"122349",
"name":"My Product 2 - Variety 1",
"url":"'/'/drfuittf5cya9.cloudfront.net'/122'/small'/1911791794.jpg"
},
{
"image_id":"123470",
"name":"191123897.jpg",
"name":"My Product 2 - Variety 2",
"url":"'/'/drfuittf5cya9.cloudfront.net'/123'/small'/1911802897.jpg"
}
]
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app' ng-controller='mainCtrl'>
<div ng-repeat="product in products">
<div ng-repeat="item in product">
{{item.image_id}}
</div>
<hr/>
</div>
</div>
您的JSON语法不正确。如果我理解正确的话,我们的每一种产品都有好几个品种。应如下所示:
{
"Products": [
{
"Product": [
{
"image_id": "12469",
"name": "My Product 1 - Variety 1",
"url": "//mystorefront.net/120/small/1911791794.jpg"
},
{
"image_id": "12470",
"name": "My Product 1 - Variety 2",
"url": "//drfuittf5cya9.cloudfront.net/121/small/1911802897.jpg"
}
]
},
{
"Product": [
{
"image_id": "122349",
"name": "My Product 2 - Variety 1",
"url": "//drfuittf5cya9.cloudfront.net/122/small/1911791794.jpg"
},
{
"image_id": "123470",
"name": "My Product 2 - Variety 2",
"url": "//drfuittf5cya9.cloudfront.net/123/small/1911802897.jpg"
}
]
}
]
}
你的HTML应该是:
<div ng-controller= "Products">
<div ng-repeat= "for oneproduct in Products">
<div ng-repeat="for variety in oneproduct">
{{variety.image_id"}}
</div>
</div>
</div>
不过还没有测试。。。
不能对对象productImages进行迭代,因为它不是数组。您可以迭代对象"Product_1"answers"Product_2"。
如果你想迭代对象productImage,你必须把它写成一个数组。
相关文章:
- 在不同的javascript数组中对json响应进行排序
- Laravel数据表无效的JSON响应
- 使用Backbone.js访问JSON响应的部分
- 不需要的JSON响应
- 跨多个域的json响应
- 将对Ajax PUT的json响应重定向到要由EL解析的JSP中
- handler没有为JSON响应正确填充模板
- 如何在phonegap应用程序中处理Ajax json响应
- 将JSON响应放入var中并输出
- 如何使用AngularJS将if语句conditon与json响应一起使用
- JS-通用解析JSON响应
- 将json响应格式化为父级和子级
- 从 JSON 响应解析数据
- 单个和多个 JSON 响应
- 将日期作为从 Web API 到 angularJS 的 json 响应
- 在 JSX Render for React.js 中遍历 JSON 响应
- 使用 JavaScript 从 URL 获取 JSON 响应
- 使用来自AngularJS的Web API JSON响应-错误:应为和数组,但得到了一个对象
- 生成动态json响应的Javascript
- 如何将json响应的一部分转换为map