Próbuję zwrócić każdy obiekt typu z JSON i ocenić jego wartość, z angular.forEach()
, ale zwracany jest tylko ostatni element. A z tego powodu nie mogę przeprowadzić żadnej oceny. Co zabawne, jeśli wykonam console.log()
, pokaże każdy przedmiot, jeden po drugim.Angular js foreach zwraca tylko ostatni element w tablicy
Jak mogę uzyskać każdy przedmiot i dokonać jego oceny?
Jeśli znasz lepszy sposób, proszę, naucz mnie.
JS (angularjs):
angular.module('bLiApp')
.controller('AddDataCtrl', ['$scope', 'DataService', function ($scope, DataService) {
DataService.getItems().success(function(data) {
$scope.items = data.category.items;
angular.forEach($scope.items, function(item) {
// This is where I'm having problem with return data...
if (item.amount < 600) {
$scope.amountchecker = 'low';
} else if (item.amount >= 600 && item.amount <= 650) {
$scope.amountchecker = 'average';
} else if (item.amount > 650) {
$scope.amountchecker = 'too high';
}
});
});
}]);
HTML (angularjs):
<div class="add-data" ng-controller="AddDataCtrl">
<div class="data-box clearfix" ng-repeat="item in items">
<article class="item">
<p>{{amountchecker}}</p>
<p><span class="month">{{ item.month.substring(0, 3) }}</span></p>
<p class="cost">{{item.cost | currency:"£"}}</p>
</article>
</div>
</div>
Dziękujemy
można spróbować dodać "utwór o $ index" w powtórzeniu ng? – ThomasP1988
Nie masz na myśli zrobić 'item.amountchecker = '''? Ponieważ nadpisujesz to za każdym razem. (i '{{item.amountchecker}}' w html) – Goodzilla
@Goodzilla, nie testowałem czegoś. można go zignorować. Więc masz pojęcie, co się dzieje i jak mogę to naprawić? – Shaoz