2017-06-16 9 views
1

Ich habe versucht, zu 'www.mytargeturl.org' mit router.go, router.push, router.replace und window.location.href zu gehen, um meine vuejs App umzuleiten, aber ich immer get myVueapp.com/www.mytargeturl.org Hier ist meine Route:Vue2 Navigiere zu externer URL mit location.href

routes:[ 
{path: '/', component: App, 
    children:[ 
    { 
     path: 'detail', 
     component: ItemDetail, 
     props: true 
    }, 
    { 
     path: 'search', 
     component: Middle 
    }  
    ] 
}, 
{ 
    path: '/test', component: Test 
}, 
{ path: '/a', redirect: 'www.mytargeturl.org' } // also tried this but didnt work 

]

+0

Verwenden Sie einfach ein normales 'a'-Tag. Vue-Router ist für die Navigation in Ihrer App –

+0

Es ist einfach: Verwenden Sie nicht Vue-Router, weil es auf einen internen Link (d. h. innerhalb der App) umleiten wird. Verwenden Sie 'window.location' und das sollte gut funktionieren. – Terry

+0

Ich habe window.location bereits vor dem Posten versucht, aber keinen Erfolg. Hier ist mein Beispiel: https://jsfiddle.net/alvirtuoso/dkb1d13h/ – codely

Antwort

1

mit Menschen in den Kommentaren Vereinbarte mit. Vues Philosophie besteht nicht darin, bereits gelöste Probleme zu lösen. Hier gilt das gleiche. Verwenden Sie einfach den üblichen Tag a für den Link, wann immer dies möglich ist. Wenn Sie über den Router gehen müssen, verwenden Sie Navigation Guards

{ 
    path: '/a', 
    ... 
    beforeEnter: (to, from, next) => { 
     window.location = "http://www.mytargeturl.org" 
    } 
} 
+0

Dies leitet mich immer noch intern wie myvueapp.com/www.mytargeturl.org – codely

+0

Oh, es tut mir leid, Sie müssen vollständige Seite URL mit Protokoll verwenden, z. https://www.google.com – damienix

3

die Lösung gefunden. Durch Hinzufügen http in meiner Ziel-URL ist alles in Ordnung! window.location = 'http://mytargeturl.org"

Dies scheint universelle Javascript Wahrheit nicht nur vue zu sein.