Ich habe ein JSON-Objekt, das ich durch jedes Objekt im Array durchlaufen müssen. Ich bin derzeit in der Lage, alle Gegenstände zu zeigen, muss aber nur die erste beim Laden zeigen können. Beim Klicken auf die Schaltfläche muss zum nächsten Objekt im Array iteriert werden, und nur das nächste Objekt wird angezeigt, und so weiter.Durch JSON-Objekt mit Angular
Als Beispiel für diese Funktionalität: http://jsbin.com/veyegihogi/edit?html,js,output
Das aktuelle Setup:
JavaScript:
var app = angular.module('app', []);
app.controller('portfolioController', function($scope, $http) {
$scope.indexToShow = 0;
$http.get("shows.json")
.then(function(response) {
console.log(response);
$scope.results = response.data;
});
$scope.change = function(){
$scope.indexToShow = ($scope.indexToShow + 1) % $scope.results.length;
};
});
Markup:
<div id="images" ng-repeat="items in results">
<div class="col-lg-2 col-md-2 col-sm-2">
<img src="{{items.image_url}}" alt="{{items.title}}">
</div>
</div>
<div class="simple-button" ng-click="change()">click me!</div>
Beispieldaten:
[
{
"id": 1,
"title": "title 1",
"count": 14,
"image_url": "images/image.jpg"
},
{
"id": 2,
"title": "title 2",
"count": 10,
"image_url": "images/image2.jpg"
},
{
"id": 3,
"title": "title 3",
"count": 8,
"image_url": "images/image3.jpg"
}
]
Ich sehe nicht ein 'ng-click' in Ihr Markup? Auch 'product_image_url' stimmt nicht mit seinen Objekten' image_url' überein. Desweiteren ... sehe ich keinen Grund $ 'scope.change' in Ihrem' $ http.get() ' –
zu haben. Auch ist das ng-repeat eine Voraussetzung wenn es wirklich so ist soll nur der nächste auf Klick zeigen? – defaultcheckbox
'src =" {{items [indexToShow] .product_image_url}} "und entfernen ng-repeat. Es scheint offensichtlich! Was ist das für dich verwirrend? – sabithpocker