获得" ng-repeat"的问题重复。

时间:2015-11-17 15:30:01

标签: javascript angularjs angularjs-directive angularjs-ng-repeat

我已经尝试了一段时间而且我没有得到它。 我查看了文档,我认为这是我的语法。

我的HTML:

<div ng-controller="StoreController as store">
    <div ng-repeat="item in store.items">
        <img ng-src="{{item.ImageSets.ImageSet[0].SmallImage.URL}}" />
    </div>
</div>

我的控制器:

(function() {
    var app = angular.module("store", []);

    app.controller("StoreController", ["$http", function($http) {
        var store = this;
        store.items = []
        $http.get("/amazon.json").success(function(data) {
            store.items = data.Items
        });
    }]);
})();

这是我的目标。

{
 "Items": {
     "Item": {...},
     "Item": {...},
     "Item": {...},
     "Item": {...}
  }
}

代码正在运行。但我只是让它显示一个图像而不是4个图像。我是角度新手,认为这是一个语法问题。

1 个答案:

答案 0 :(得分:1)

这不是一个有角度的问题,它是一个JavaScript问题。 问题是,您正在尝试使用相同的密钥(item)多次构建对象。 因此,每次向对象添加新项目时,前一个项目都将被删除。这就是为什么您的对象只有一个项目。

这样做:

var items = {
  "item": 1,
  "item": 2,
}

相当于:

var items = {};
items["item"] = 1;
items["item"] = 2; //items["item"] gets replaced and its value is now 2

相反,您应该使用包含所有项目的数组。像那样

{
    items: [
        {...},
        {...},
        //...
    ]
};