Vue.js和Moment.js:删除评论的条件

时间:2018-02-09 09:25:27

标签: javascript vue.js conditional-statements momentjs directive

我需要能够在观察到两个条件时删除评论:

    评论作者的
  1. Id等同于我们的ID(我们只能删除我们的评论)。
  2. 自评论创建之日起不到15分钟。
  3. 我做了第一个条件,但我正在努力做,并使用Moment.js添加第二个。每条评论都有created_at属性。

    <a v-if="comment.author.id == myProfile.id"
       v-on:click.stop="deletePostComment({ params: { post_id: getPost.id, comment_id: comment.id } })"
       class="g-color-gray-light-v1 g-color-gray-dark-v3--hover g-font-size-12 float-right u-link-v5 magic-absolute-position"
       style="cursor: pointer;">
                    Delete
    </a>
    

    我想我们可以在一个函数中有这两个条件。请帮忙!

3 个答案:

答案 0 :(得分:1)

我决定使用函数v-if添加showDelete指令,这将显示或隐藏选项&#34;删除&#34;根据这两个条件发表评论。

然后我把这个函数放在computed

showDelete() {
  return moment().diff(moment(this.comment.created_at, 'YYYY-MM-DD HH:mm:ss Z'), 'minutes') <= 15 && this.comment.author.id === this.myProfile.id;
}

所以这个函数会监听布尔值。如果是true,则会显示选项&#34;删除&#34;。

答案 1 :(得分:0)

您可以通过从created_at日期减去当前日期来检查是否已过去15分钟:

var now = new Date();
var created_at = new Date('2/9/2018 12:05')

然后将其与15分钟值进行比较。像下面这样的东西应该有效:

<a v-if="comment.author.id == myProfile.id && created_at - now >= 15*60*1000"
   v-on:click.stop="deletePostComment({ params: { post_id: getPost.id, comment_id: comment.id } })"
   class="g-color-gray-light-v1 g-color-gray-dark-v3--hover g-font-size-12 float-right u-link-v5 magic-absolute-position"
   style="cursor: pointer;">
                Delete
</a>

答案 2 :(得分:0)

这个怎么样?:

<Image Source="{Binding Source}" 

方式:

if (message.Source == "like_icon.png")
   message.Source = "liked_icon.png";
else
   message.Source = "like_icon.png";