Ich versuche eine Route mit einem modalen zu erstellen, und wenn Sie mit Router-Link auf diesen Router-Pfad zugreifen, erscheint ein Modal über der aktuellen Seite oder wenn ich direkt von URL aufrufen der Index mit modal oben.Vuejs2 Modal mit Route in vue-Router
Zum Beispiel: Ich bin in http://localhost/profile/1 und klicken Sie in der Seitenleiste erstellen Team die URL Änderungen http://localhost/team/creat aber die Seite hinter dem modalen http://localhost/profile/1 noch.
Dies ist der Code ich versuche:
Router:
Vue.component('modal', Modal);
export default new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'Hello',
component: require('@/components/Hello'),
meta: { auth: false }
},
{
path: '/team',
name: 'team',
component: require('@/components/team/Index'),
meta: { auth: true },
},
{
path: '/team/create',
name: 'CreateTeam',
components: {
b: CreateTeam
},
meta: { auth: true }
},
]
})
App.vue
<template>
<router-view></router-view>
<!--This is the "MODAL" router-view -->
<router-view name="b"></router-view>
</template>
Modal.vue
<template>
<div class="modal">
<slot name="body"></slot>
<button type="button" @click="$emit('close')">×</button>
</div>
</template>
CreateTeam.vue
<template>
<modal @close="vm.$router.go(-1)">
<div slot="body" class="col-md-12">
Form here
</div>
</modal>
</template>
Alles funktioniert, anstatt dass, wenn ich gehen/create/Team hinter dem modalen
Ihre modal kein Weg in diesem Fall sein sollte, sollte es ein Element der gleichen Komponente sein, beherbergt Ihre 'router-view'. Wenn Sie es anzeigen müssen, triggern Sie es von dieser Komponente aus, indem Sie eine Ereignis- oder Statusverwaltung verwenden oder sogar eine Funktion über die Router-Ansicht an die Komponenten übergeben, die sie auslösen müssen. – Bert
Ich verstehe, aber in diesem Fall möchte ich in jeder Komponente wie ein "Global Modal" öffnen. Wenn ich dich mag sagen, dass alle Komponenten den Code der modalen Komponente und der verschiedenen Pfade haben müssen ex: profile/modal, team/modal "Ich möchte das Team öffnen/von überall erstellen – Snickfire
Nein, das bin ich nicht Es sollte in App.vue leben, es sollte keine Route sein, und Ihre Komponenten, die * Routen sind, sollten es auslösen. – Bert