【问题标题】:ng-repeat repeating by letters wiseng-repeat 按字母重复
【发布时间】:2014-11-14 01:10:05
【问题描述】:

我有多个级别的 json 需要使用 ng-repeat 显示,但我遇到了问题

JSON

$scope.product =  {
    "product": [
        {
            "name": "0001",
            "tagline": "Scrub peached 60% cot 40% poly\r\ns/s v neck scrub uniform w/ 1 chest pkt"
        }
    ],
    "sizes": [
        "XXL",
        "XXXL",
        "XS",
        "XL",
        "S",
        "M",
        "L"
    ],
    "colors": [
        {
            "name": "WHITE",
            "image": "/kalypso/commonsController.do?param=imageLoader&imageName=1239378389537_white1.JPG"
        }
    ],
    "images": [
        {
            "big": "/kalypso/commonsController.do?param=imageLoader&imageName=2010_08/1281620375516_UT01.jpg",
            "small": [
                "/kalypso/commonsController.do?param=imageLoader&imageName=2009_07/D0001-b.jpg"
            ],
            "thumb": "/kalypso/commonsController.do?param=imageLoader&imageName=2010_08/1281620375516_UT01.jpg"
        }
    ]
}

AngularJS

$scope.productsImages =  $scope.product.images[0].thumb;
$scope.productsImgSmall =  $scope.product.images[0].small;
$scope.productsImgBig =  $scope.product.images[0].big;
$scope.productsColors =  $scope.product.colors[0].cname;
$scope.productsColorsImages =  $scope.product.colors[0].image;
$scope.productsSizes =  $scope.product.sizes;
$scope.productsName =  $scope.product.product[0].name;
$scope.productsTag =  $scope.product.product[0].tagline;
$scope.productsPrice =  $scope.product.product[0].price;
$scope.productsId =  $scope.product.product[0].prdId;
console.log($scope.productsColors);

每个单词都会重复颜色名称,如果数组长度为零,我会收到重复的错误消息。请帮忙。

错误:[ngRepeat:dupes]http://errors.angularjs.org/1.3.0/ngRepeat/dupes?p0=color%20in%20productsColors&p1=string%3AT&p2=%22T%22

【问题讨论】:

  • 显示您的 HTML,否则无济于事
  • 没有足够的代码来确定问题。请包含您的视图 HTML 和 Angular 控制器中的相关代码。

标签: angularjs ng-repeat


【解决方案1】:

如果您的 json 对象上没有唯一 ID,我会查看 track by $index

item in items track by $id(item)

item in items track by $index

如果你想用角度来处理它

【讨论】:

    【解决方案2】:
    instead of array [i] value use like this 
    $scope.productsImages =  $scope.product.images;
    
    HTML
    
    <ul>
       <li ng-repeat="prd in productsImages">
        {{prd.thumb}}
    </li>
    </ul>
    
    use repeat function for all key
    
    another Example 
     $scope.data.colors = $scope.product.colors
    <ul>
       <li ng-repeat="color in product.colors">
        {{color.name}}
     {{color.image}}
    </li>
    </ul>
    

    【讨论】:

      猜你喜欢
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 2016-10-07
      相关资源
      最近更新 更多