【发布时间】:2016-06-08 09:14:37
【问题描述】:
我正在尝试创建一个 cmets 部分,类似于 instagram 的部分,其中显示了 cmets 列表,以及每个评论的用户配置文件和用户名。
我有一个正在解析的 cmets 表和一个正在解析的用户表,因此我必须对每条评论执行进一步查询以获取个人资料图片链接和用户名。
我正在使用 Angular 来执行此操作。我有一个 cmets 数组来存储所有评论,并且我将一个对象推送到该数组上,其中包含: - 用户名 - 个人资料图片 - 评论
var commentQuery = parseQuery.new('Comment');
commentQuery.equalTo("ID", id);
parseQuery.find(commentQuery)
.then(function(results) {
for(var i =0; i < results.length; i++){
var comment = results[i].get('comment');
var userQuery = parseQuery.new('_User');
userQuery.equalTo("objectId", results[i].get('userObject')[0].id);
parseQuery.find(userQuery)
.then(function(user) {
var commentObject = {
comment: comment,
username : '',
profile: ''
}
commentObject['profile'] = user[0].get('profile_picture')['_url'];
commentObject['username'] = user[0].get('liveUsername');
$scope.comments.push(commentObject);
})
}
})
然后这在我的 ng-repeat 中产生的是一个列表,具有正确数量的 cmets,但是所有 cmets 都是相同的!
如果我在下载 cmets 时将它们打印到控制台,则它们是正确的。正是在对象创建时出现问题,并且所有评论对象中都放置了相同的数据。
【问题讨论】:
-
将
$scope.commentObject更改为var commentObject
标签: javascript angularjs callback angularjs-scope angularjs-ng-repeat