通过 AngularJS 中的 "names" 访问数字 json 键

Accessing numerical json keys by its "names" in AngularJS

我的 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 的列表。有没有办法打印尺寸名称而无需在键中添加字母?

使用:

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

Plunker

问题不在于密钥。问题是你正在遍历对象数组,键是 0-17 而值是这样的对象:{"46":0}.

如果你可以修改JSON,那么修改它:

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

那么您可以这样参考尺码和数量:

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

希望有帮助。

你可以重复一遍。检查这个 plnkr

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

尝试以下操作:

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

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

与其使用相当昂贵的两个 ng-repeats,不如使用一个可以获取大小值的函数

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

或创建自定义过滤器

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

这是同时使用它们的示例plnkr