Json 通过其";名称“;在AngularJS
我的JSON文件包含衣服尺寸及其库存量Json 通过其";名称“;在AngularJS,json,angularjs,key,Json,Angularjs,Key,我的JSON文件包含衣服尺寸及其库存量 [{"46":0},{"48":0},{"50":0},{"52":0},{"54":0},{"56":0},{"58":0},{"60":0},{"94":0},{"98":0},{"102":0},{"106":0},{"110":0},{"24":0},{"25":0},{"26":0},{"27":0},{"28":0}] 我正在尝试打印尺寸名称,如下所示: <li ng-repeat="(size, stock) in sizes">
[{"46":0},{"48":0},{"50":0},{"52":0},{"54":0},{"56":0},{"58":0},{"60":0},{"94":0},{"98":0},{"102":0},{"106":0},{"110":0},{"24":0},{"25":0},{"26":0},{"27":0},{"28":0}]
我正在尝试打印尺寸名称,如下所示:
<li ng-repeat="(size, stock) in sizes">
{{ size }}
</li>
<li ng-repeat="sizeEntity in sizes">
{{ sizeEntity.size }}: {{ sizeEntity.quantity }}
</li>
{{size}}
它只显示了一个0到17的列表。有没有一种方法可以打印尺码名称而不必在钥匙上添加字母?使用:
<ul ng-repeat="size in sizes">
<li ng-repeat="(size, stock) in size">
{{size}}
</li>
</ul>
-
{{size}}
问题不在于钥匙。问题是,您正在迭代对象数组,键应该是
0-17
,值应该是如下对象:{“46”:0}
如果可以修改JSON,则可以这样修改:
[ { size: 46, quantity: 10 }, { size: 47, quantity: 11 }, ... ]
然后您可以参考以下尺寸和数量:
<li ng-repeat="(size, stock) in sizes">
{{ size }}
</li>
<li ng-repeat="sizeEntity in sizes">
{{ sizeEntity.size }}: {{ sizeEntity.quantity }}
</li>
{{sizentity.size}}:{{sizentity.quantity}
希望hepls.你可以重复。结帐
{{key}}:{{item}
尝试以下操作:
{{key}}:{{value}
与其使用两个ng重复(这相当昂贵),不如使用一个函数来获取大小值
$scope.getSize = function(size){
return Object.keys(size)[0];
}
或者创建自定义过滤器
app.filter('getSize', function(){
return function(data){
return Object.keys(data)[0];
}
})
这里是一个同时使用它们的例子是否可以将JSON响应转换为这种格式{“46:0”,48:0,50:0,52:0,54:0,56:0,58:0,60:0,94:0,98:0,102:0}真的,您应该将模型更改为[{size:46,stock:0},{size:48,stock:0},…]。因为你在数组上使用键值迭代,所以你的变量名是有误导性的。您得到的是大小的
(索引,obj)
。按照上面的建议去做。你期望这样吗