Если ваше число X падает между A и B, и вы хотите, чтобы Y упал между C и D, вы можете применить следующее линейное преобразование:
Y = (XA) / (BA) * (DC) + C
Это должно дать вам то, что вы хотите, хотя ваш вопрос немного неоднозначен, поскольку вы также можете отобразить интервал в обратном направлении. Просто следите за делением на ноль, и вы должны быть в порядке.
Вы можете проверить, не является ли slug пустым, перед рендерингом ссылки маршрутизатора, как показано ниже:
<router-link v-if="project.slug" to="{ name: 'projects.show', params: { slug: project.slug }}">
<h4>{{ project.title}}</h4>
</router-link>
Но я уверен, почему slug пуст.
Ваш подход неверен. router-link
является компонентом, который отображает элемент a
. Проверьте официальный источник: https://router.vuejs.org/api/#router-link . Первый работает, но тоже не так. Вы должны поставить tag='li'
в router-link
. Второй, никогда не будет работать, потому что VueJS отбросит тег h4
. Чтобы заставить это работать, чередуйте что-то вроде:
<h4>
<router-link :to='<your-params>'>{{ project.title }}</router-link>
</h4>
Благодаря Джому, проблема была в том, что мой «слизень» был пуст, и действительно, когда я смотрю на консоль, предупреждение было там.
[vue-router] missing param for named route "projects.show": Expected "slug" to be defined