私は JavaScript、AngularJS、および Parse の使い方を学んでいるところです。できるだけ多くのことを学びたいです。
Parse と AngularJS を使用するように指示された課題があります。オブジェクトにそれぞれを表示company
してから、それぞれの評価を表示したいと考えています。companies
Parse では、これらは関係を持つ 2 つの別個のオブジェクトとして格納されます。
ようやく評価を計算できるようになりましたが、Angular が評価のデータを上書きしています。各評価ではなく、最後に計算された評価を表示しています。はconsole.log(total)
、コンソールで正確な数値を生成しています。
取得するためのコントローラー内のコードは次のcompanies
とおりです。
function getCompanies() {
new Parse.Query(Companies).find({
success: function(results) {
for (var i = 0; i < results.length; i++) {
results[i].relation("ratings").query().find({
success: function(ratings) {
// retrieve stars and calculate average rating
var total = 0;
for (var o = 0; o < ratings.length; o++) {
var stars = parseInt(ratings[o].attributes.stars);
total += stars;
}
total = total / ratings.length; // get average rating
$scope.$apply(function() {
$scope.companies = results.map(function(obj) {
console.log(total); // produces correct results
return {name: obj.get("name"), rating: total, parseObject: obj};
})
});
}
});
}
}
});
}
私view
は次のコードを使用しています:
<div ng-repeat="company in companies">
<h1>{{company.name}}</h1>
<h3>Rating: {{company.rating}}</h3>
</div>
現在、私が 2 つ持っcompanies
ていて、それらがratings
2 と 4 の場合、現在、Angular は両方に対して 4 を表示します。ただし、 はconsole.log(total)
2 と 4 を表示します。
私のコードがかなりずれている場合は、教えてください。できるだけ多くのことを学びたいです。どんな助けでも大歓迎です、ありがとう。