Я использую vuejs с vue-router 2.0. Теперь мне нужно следующее. Если я нажму на настройки, над текущим контентом должно появиться наложение, и контент не должен быть повторно загружен / отрисован, а URL-адрес должен быть обновлен.
приложение / панель управления / настройки приложений-> контентное приложение загружено и над оверлеем с настройками
приложение / альбом / appsettings-> альбом содержимого загружен и над оверлеем с настройками
приложение / альбом / галерея / appsettings-> галерея контента загружена и над оверлеем с настройками
Как я могу это сделать?
Я пробовал это
// router.js
path: '/settings',
name: 'settings',
components: {
default: Album,
overlay: Settings
},
meta: { auth: true }
// app.vue
<router-link :to = "{ name:'settings', path: '/settings/' }">settings</router-link>
<router-view></router-view>
<router-view name = "overlay"></router-view>
Но как я могу динамически установить представление по умолчанию и путь?
обновленные маршруты
На данный момент мои маршруты очень простые, только представление Фото также должно открываться в оверлее
const routes = [
{
path: '/',
component: Signin,
name: 'home',
meta: { auth: false, layout: 'simple' }
},
{
path: '/signin',
component: Signin,
name: 'signin',
meta: { auth: false, layout: 'simple' }
},
{
path: '/dashboard',
component: Dashboard,
name: 'dashboard',
meta: { auth: true }
},
{
path: '/album',
name: 'album',
component: Album,
meta: { auth: true }
},
{
path: '/category/:id',
name: 'category',
props: true,
component: Category,
meta: { auth: true }
},
{
path: '/gallery/:id',
name: 'gallery',
props: true,
component: Gallery,
meta: { auth: true }
},
{
// This view should also be opened later in the overlay, I think this must be a childview than
path: '/photo/:id',
name: 'photo',
props: true,
component: Photo,
meta: { auth: true }
},
{
path: '/settings',
name: 'settings',
components: {
default: Album,
overlay: Settings
},
meta: { auth: true }
}
];
Грегор
@ CENT1PEDE Я обновил свой вопрос маршрутами
Попробуйте это вместо того, чтобы связывать оверлей с дочерним маршрутом, почему бы просто не использовать диалоговое окно, запускаемое для открытия при наличии определенных параметров запроса URL-адреса. Скажем, /settings/album/:imageId?openDialog=true:imageId - это идентификатор изображения, которое вы хотите показать, и ?openDialog=true определит, хотите ли вы отображать изображение в диалоговом окне или нет. Я не знаю, такая же ситуация с вашим примером, но он должен дать вам представление. А для чего вообще накладка?
Хм, я бы предпочел решение с чистым URL-адресом, позже мне также понадобятся маршруты, такие как gallery /: id / upload, gallery /: id / edit. Я буду использовать это наложение для многих вещей, наложение больше похоже на огромную боковую панель (которая связана с активным контентом), которая запускается в большинстве случаев для управления активным видом. Но я подумал, что могу также использовать этот оверлей / боковую панель, чтобы показывать такие вещи, как настройки / сброс пароля и т. д.
Если это так, вы можете gallery/:id/:action, где действие редактируется, загружается и т. д. В зависимости от действия вы можете манипулировать компонентами для отображения.





Можем ли мы увидеть ваш полный список маршрутов?