我试图创建一个函数来检查一个人是否已经投票支持交易。
当用户对交易进行投票时,他们的名字会被添加到选民阵列中。
基本上我想检查传入的交易对象,选民数组是否包含登录用户
我该怎么检查?
功能
$scope.upVoteHome = function(deal) {
if(XXXXXX){
// User has not voted already.
}else{
deal.votes++;
deal.voters.push(user);
deal.$update(function() {
//$location.path('deals/' + deal._id);
}, function(errorResponse) {
// rollback votes on fail also
$scope.error = errorResponse.data.message;
});
}
};
交易模式
var ItemSchema = new Schema({
title: {
type: String,
default: 'NA',
required: 'Please fill Item title',
trim: true
},
voters: [{
type: Schema.ObjectId,
ref: 'User'
}]
});
由于
答案 0 :(得分:1)
您可以使用array.filter()
:
$scope.upVoteHome = function(deal) {
var hasVoted = deal.voters.filter(function(voter) {
return voter.ref == $scope.loggedInUser;
}).length > 0;
if(!hasVoted) {
// User has not voted already.
} else {
// ...
}
}