Angularjs过滤器检查值是否在数组中
帖子有一个标题和一系列喜欢该帖子的用户:Angularjs过滤器检查值是否在数组中,angularjs,Angularjs,帖子有一个标题和一系列喜欢该帖子的用户: { "title" : "Example Title", "likes" : ["User 1", "User 2", "User 3"] } 我显示的“帖子”如下所示: <div ng-repeat="post in posts"> <h1>{{post.title}}</h1> <span ng-show="doesLike(post.likes)">Liked already<
{
"title" : "Example Title",
"likes" : ["User 1", "User 2", "User 3"]
}
我显示的“帖子”如下所示:
<div ng-repeat="post in posts">
<h1>{{post.title}}</h1>
<span ng-show="doesLike(post.likes)">Liked already</span>
<span ng-hide="doesLike(post.likes)">Like this post</span>
</div>
{{post.title}
已经喜欢了
喜欢这个帖子吗
我的控制器
doesLike()
中有一个函数,它根据当前用户的用户名是否在传递给函数的数组中返回true
或false
。虽然这种方法可行,但我是否可以使用过滤器实现我认为更干净的效果?我不认为视图中包含逻辑会更干净。更干净的方法是不要使用以下命令按摘要周期两次调用
doesLike
函数:
{{post.title}
已经喜欢了
喜欢这个帖子吗
您可以尝试以下方法:
<div ng-repeat="post in posts">
<h1>{{post.title}}</h1>
<span ng-if="doesLike(post.likes)">Liked already</span>
<span ng-if="!doesLike(post.likes)">Like this post</span>
{{post.title}
已经喜欢了
喜欢这个帖子吗
我建议使用ng ifThanks-我喜欢这种方法
<div ng-repeat="post in posts">
<h1>{{post.title}}</h1>
<span ng-if="doesLike(post.likes)">Liked already</span>
<span ng-if="!doesLike(post.likes)">Like this post</span>