Я изучаю маршрутизатор Vue. И я хочу сделать программную навигацию (без <router-link>
). Мой маршрутизатор и вид:
router = new VueRouter({
routes: [
{path : '/videos', name: 'allVideos', component: Videos },
{path : '/videos/:id/edit', name: 'editVideo', component: VideoEdit },
]
});
new Vue({
el: "#app",
router,
created: function(){
if(!localStorage.hasOwnProperty('auth_token')) {
window.location.replace('/account/login');
}
router.push({ name: 'allVideos' })
}
})
Так по умолчанию я нажимаю на маршрут «AllVideos» и в этом компоненте у меня есть кнопка и метод перенаправления на « кнопку» editVideo»:
<button class="btn btn-sm btn-warning" @click="editVideo(video)">Edit</button>
метод:
editVideo(video) {router.push({ name: 'editVideo', params: { id: video.id } })},
Он отлично работает. Но когда я пытаюсь получить идентификатор внутри компонента VideoEdit с помощью $route.params.id
я получил ошибку неперехваченного ReferenceError: $ маршрутов не определен
Может быть, это потому, что я не использую НПЕ теперь только версию ТПСА из Vue и Vuerouter. Любые решения? Благодаря!
Обновлено: кстати в Вью инструмента Dev я вижу $ экземпляр маршрута внутри компонента
Обновлено:
var VideoEdit = Vue.component('VideoEdit', {
template: ` <div class="panel-heading">
<h3 class="panel-title">Edit {{vieo.name}}</h3>
</div>`,
data() {
return {
error: '',
video: {},
}
},
created: function() {
console.log($route.params.id);
},
})
Не могли бы вы положить, что часть из код компонента, где вы выбираете param.id? –
код добавлен. Вы можете проверить. Спасибо! –
вы можете попробовать console.log (это $ route.params.id) вместо –