AngularJS:NG-重复显示数据不正确
问题描述:
我刚学使用JavaScript,AngularJS,并解析,所以请,如果我不当做任何事情,这么说。我想尽可能地学习。AngularJS:NG-重复显示数据不正确
我有一个任务,我被指示使用Parse和AngularJS。我想在我的companies
对象中显示每个company
,然后显示每个对象的评分。在解析中,这些被存储为具有关系的两个单独的对象。
我终于能够得到的收视率来计算,但是角被重写的收视率数据。它显示计算出的最后评分,而不是每个评分。 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>
现在,如果我有两个companies
他们有的图2和4 ratings
,现在角显示器4两者。然而,console.log(total)
将显示2和4
如果我的代码是路要走,请告诉我,我要学习尽可能多地。任何帮助非常感谢,谢谢。
答
可以尝试代码类似下面,
success: function(results) {
for (var i = 0; i < results.length; i++) {
var result = results[i];
results[i].relation("ratings").query().find({
success: function(ratings) {
//calculate total here;
//var total = your logic to calculate the total
//then store the total in the result object
result.total = total;
}
})
}
$scope.$apply(function() {
$scope.companies = results.map(function(obj) {
console.log(total); // produces correct results
return {name: obj.get("name"), rating: obj.total, parseObject: obj};
})
});
}