vuejs - как объединить текст с именованным маршрутом - PullRequest
0 голосов
/ 28 октября 2018

Как я могу объединить именованный маршрут с тегом router-link?Мой код:

<router-link
    :to="'//https://t.me/share/url?url='+{name: Profile, params: {id: user.user_id}}+'&text=Hi I am ' + user.first_name + ' ' + user.last_name + ':'">Click Here</router-link>

Проблема в этой части:

{name: Profile, params: {id: user.user_id}}

возвращает [Object object].Как я могу исправить это, чтобы вернуть правильное значение этого объекта, который http://example.com/profile/1 в качестве примера?

1 Ответ

0 голосов
/ 28 октября 2018

Нет необходимости использовать router-link для внешних ссылок, поскольку его щелчок не должен обрабатываться с помощью vue-router.

. Я бы предложил создать вычисляемое свойство (или метод), которое будет возвращатьполный URL со всеми данными.Это также удалит определенную логику из шаблона, что является хорошей практикой.

Ссылка на шаблон будет выглядеть следующим образом:

<a :href="telegramLink">Open Telegram</a>

И вычисляемое свойство для создания ссылки:

computed: {
  telegramLink () {
    const user = this.user

    // Get route information by provided parameters
    const route = this.$router.resolve({
      name: 'Profile',
      params: {
        id: user.user_id
      }
    })

    // Create full address url
    const url = `${window.location.origin}${route.href}`

    const text = `Hi I am ${user.first_name} ${user.last_name}:`

    return `https://t.me/share/url?url=${url}&text=${text}`
  }
}
...