Json 通过其";名称“;在AngularJS

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">

我的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>
<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)
    。按照上面的建议去做。你期望这样吗