В vue.js используйте формат timeago.

  • Автор темы NAL1
  • 29
  • Обновлено
  • 16, May 2024
  • #1
Привет, В vue.js(2.5) я хочу вывести некоторые свойства, разделенные запятыми, например:
 <timeago :since="nextUserChatMessage.created_at" :auto-update="60"></timeago>
Код (разметка): Но поскольку некоторые значения могут быть пустыми, я бы хотел пропустить пустую запятую в результирующей строке, поэтому мне нужна какая-то процедура для работы с пустыми полями. Обычным способом для этого может быть установка всех параметров в
  <div v-if="users_list_block_visible && participantUsersList.length > 0" > ... {{ participantUserInfo(participantUser) }} ... </div> methods: { participantUserInfo(user) { var dataArray = [ " ", user['first_name']+' '+user['last_name'], user['user_status_label'], user['visited_at'] ] return this.concatStrings(dataArray, ', '); // that is my function for concatinating - ok with it ...
Код (разметка): Вопрос в том, что мне нужно, чтобы поле visit_at отображалось в формате «С момента», используя это https://github.com/egoist/vue-timeago

библиотека Когда мне нужно показать время создания сообщения, я делаю
 &nbsp;( {{participantUser.first_name}} {{participantUser.last_name}}, {{participantUser.user_status_label}}, {{participantUser.user_status_label}} )<br>
Код (разметка): Но поскольку поле visit_at может быть пустым, мне также нужно включить его в массив dataArray для concatStrings. Есть ли способ вызвать функциональность timeago для visit_at в функции javascript участникаUserInfo или сделать это каким-то другим способом?

Я думал о вычислительных методах, но так ли это в этом случае? вычисленные методы, похоже, не имеют параметров.... надеюсь понятно выразился.... Спасибо!

NAL1


Рег
28 Aug, 2011

Тем
1

Постов
2

Баллов
12
  • 06, Jun 2024
  • #2
Во-первых, вы используете объект, имена не нарушают пространство имен свойств/методов JS, просто используйте метод объекта. Во-вторых, и я редко это говорю.

это работа по хардкодингу.

ПРЕДПОЛАГАЯ, что имя всегда существует:
 
participantUserInfo(user) {
var result = user.first_name + ' ' + user.last_name;
if (user.user_status_label) result += ', ' + user.user_status_label;
if (user.visited_at) result += ', ' + user.visited_at;
return result;
}
Код (разметка): Иногда автоматизация не поможет вам. Тем не менее, ЕСЛИ бы я автоматизировал это, создав массив, я бы предложил использовать join вместо concatStrings.
 

viprus1


Рег
05 Jul, 2014

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно