通过其名称"访问数字json密钥"在AngularJS中

时间:2015-01-13 11:59:27

标签: 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">
    {{ size }}
</li>

所有它显示我是一个0到17的列表。有没有办法打印大小名称而不必在键上添加一个字母?

5 个答案:

答案 0 :(得分:1)

使用:

<ul ng-repeat="size in sizes">
    <li ng-repeat="(size, stock) in size">
    {{size}}
    </li>
</ul>

Plunker

答案 1 :(得分:1)

问题不在于关键。问题是你在对象数组上进行迭代,并且键将是0-17,值将是像{"46":0}这样的对象。

如果您可以修改JSON,请将其修改为:

[ { size: 46, quantity: 10 }, { size: 47, quantity: 11 }, ... ]

然后你可以参考这样的尺寸和数量:

<li ng-repeat="sizeEntity in sizes">
  {{ sizeEntity.size }}: {{ sizeEntity.quantity }}
</li>

希望肝脏。

答案 2 :(得分:0)

你可以重复一遍。结帐plnkr

<li ng-repeat="(size, stock) in sizes">
    <span ng-repeat="(key, item) in stock">
{{key}} : {{item}}
</span>
</li>

答案 3 :(得分:0)

尝试以下方法:

<li ng-repeat="size in sizes">
    <p ng-repeat="(key, value) in size"> {{ key }}: {{ value }}</p>
</li>

http://plnkr.co/edit/Hly57DhAW25qLtfKPg9B?p=preview

答案 4 :(得分:0)

不是使用相当昂贵的两个ng-repeats,而是使用能够获得大小值的函数来改善

$scope.getSize = function(size){
  return Object.keys(size)[0];
}

或创建自定义过滤器

app.filter('getSize', function(){
  return function(data){
    return Object.keys(data)[0];
  }
})

以下是plnkr

使用它们的示例