Angular.js - 如何使用过滤器检查数组对象中是否包含字符串?

时间:2014-07-11 17:13:56

标签: javascript arrays angularjs firebase

我正在使用Angular和Firebase创建一个应用,允许用户发布新主题以供讨论,并对现有主题进行投票。

当用户登录时,他们的用户名存储在currentUser.username中。如果他们提出了一个主题,那么他们的用户名也会出现在topic.upvotes

我遇到的问题是topic.upvotes存储一组值。因此,如果Kenneth和Tyler都赞成了一个话题topic.upvotes = {"Kenneth":"Kenneth","Tyler":"Tyler"}

我需要知道的是,如果某个用户已经对某个主题进行了投票,那么我可以应用一些条件CSS来为他们提供他们已经就该主题投票的视觉反馈。

我一直试图通过以下方式实现这一目标:

ng-class="{user_has_upvoted : signedIn() && topic.upvotes === currentUser.username}"

我的意图是,只有当用户都已登录并且他们实际上对该主题进行了投票时,才将user_has_upvoted类应用于div。

但显然topic.upvotes(一个数组)不是==或=== currentUser.username(一个字符串)。

我希望有一些方法可以使用某种inArry()函数,但angular没有任何我发现可以工作的东西。

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

使用它:

ng-class="{user_has_upvoted : signedIn() && topic.upvotes[currentUser.username].localeCompare(currentUser.username) === 0}"