Я создаю форум, на котором пользователи могут щелкнуть аналогичную кнопку.class binding in Vue
То, что я пытаюсь достичь, заключается в том, что когда пользователь нажимает кнопку, я хочу, чтобы эта кнопка была цветной, чтобы показать, что пользователю уже понравился комментарий, такой же, как Laracast.
Как я могу это сделать? До сих пор я получил
<div class="Media--footer background">
<div class="Media--footer__left">
<button @click="addOrRemoveLikes(comment.id,auth_id)"
v-if="auth_id"
>
<-------------- Here -------------------->
<i class="fa fa-thumbs-o-up" :class={'liked': --HERE-- }></i> {{ comment.likes.length }}
</button>
<div v-else>
<button
style="border: 0; background:white;"
@click="promptLogin=true"
>
<i class="fa fa-thumbs-o-up"></i> {{ comment.likes.length }}
</button>
</div>
</div>
<div class="Media--footer__right" v-for="like in comment.likes">
<a href="/@{{ like.user.name }}">{{ like.user.name }}</a>
</div>
</div>
Как вы можете видеть, я использую привязки класса, и я пытаюсь обратиться к расчетному реквизита, но я не знаю, как я могу сделать Это. Кроме того, я пропускании auth_id к component.So, кажется, мне нужно сравнить с ним, как
liked: function(){
return this.auth_id == like.user_id
}
Но, дело в том, что я не могу передать аргумент (comment.likes в этом случай) к вычисленным реквизитам правильно? Мне нужно пройти через «любит», чтобы получить user_id
Извините, если я не делаю себя ясным. Любая помощь будет оценена. Спасибо заранее.
---- обновление -----
Я добавил этот код, но не повезло ... Почему не будет работать?
<button @click="addOrRemoveLikes(comment.id,auth_id)"
v-if="auth_id"
>
<i class="fa fa-thumbs-o-up" :class="{'liked': liked(comment.likes)}"></i> {{ comment.likes.length }}
</button>
экземпляр Вью
liked:function(likes){
var self = this
likes.forEach(function(like){
return self.auth_id == like.user_id
})
}