我有Likes
数组,其中包含喜欢帖子的用户
Likes: [{username: "xyz" name: "xyz"}, {username: "pqr" name: "pqr"}]
在视图中,我想检查用户是否已经点击过,以便我可以在下次显示时显示。
<button type="button" class="btn btn-link">Like</button>
<button type="button" class="btn btn-link">UnLike</button>
有人可以告诉我如何过滤用户名的Likes
数组,以便我可以将其用于ng-show
。
答案 0 :(得分:1)
我建议你使用一个关联数组,而不是你当前使用的对象数组。
var likes = [];
likes['xyz'] = {liked: true};
likes['pqr'] = {liked: false};
这样你就可以编写一个函数来检查和翻转'likes'标志,以及一个检查标志的函数。
$scope.onClick = function(user) {
if (!$scope.liked[user]) return;
$scope.liked[user].liked = !$scope.liked[user].liked;
}
$scope.showLike = function(user)
{
if (!$scope.liked[user]) return;
return $scope.liked[user].liked;
}
并在你的HTML中:
<button ng-click="onClick('xyz')" ng-show="!showLike('xyz')">
like
</button>
<button ng-click="onClick('xyz')" ng-show="showLike('xyz')">
unlike
</button>
请参阅此jsFiddle
答案 1 :(得分:0)
<button type="button" data-ng-hide="(likes | filter:{username: 'username'}).length >0">Like</button>
<button type="button" data-ng-show="(likes | filter:{username: 'username'}).length >0">UnLike</button>