Используйте момент (). FromNow () с vue компонентом в массиве - PullRequest
1 голос
/ 21 апреля 2020

Как я могу использовать момент js для форматирования даты, которая находится внутри моего vue компонента? Функция moment (). FromNow () работает нормально, когда я вручную вводю дату, но я хочу использовать дату, полученную из моего API.

В настоящее время это выглядит так, я поставил часть, где мне нужна помощь в *.

Vue. js

 <div class="post d-flex flex-row" v-for="(post, i) in Post" :key="i">
    <h6 class="card-subtitle mb-2 text-muted">Posted **{{moment(datePosted).fromNow()}}** by {{post.user}}</h6>
 </div>

data() {
        return{
            Post: []
        }
    },
    async created() {
        try{
            const res = await axios.get(url)
            this.Post = res.data;
        } catch(err){
            console.log(err)
        }
    }

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Переменная datePosted кажется неопределенной. Функция форматирования должна выглядеть примерно так: {{ moment(post.datePosted).fromNow() }}. Также не используйте переменные, которые отличаются только регистром: post и Post.

0 голосов
/ 22 апреля 2020

На мой взгляд, вы можете отобразить res.data внутри созданного и добавить атрибут с отформатированными данными к объекту. Например:

this.Post = res.data.map(post => ({
   ...post,
   datePost: moment(post.date).fromNow()
})

Очевидно, я не могу знать, является ли post.date правильным атрибутом. Вы должны напечатать там правильный. Также убедитесь, что вы импортировали момент js модуль.

Затем в шаблоне вы можете использовать:

{{ post.datePost }}
...