2016-03-24 6 views
3

Ich verwende Vue.js und Laravel, um eine einfache Tabelle mit Produkten darzustellen. Von dort aus möchte ich eine Produktdetailseite wie folgt verlinken:Link zu einer Route mit einem Parameter von Vue.js

<a href="{{ route("product::details", ['product' => '???']) }}">@{{ product.id }}</a>

Da die Tabelle auf Client-Seite basieren auf einem Datenobjekt erzeugt wird, ich bin auf der Suche für die eleganteste Art und Weise, dass während umzusetzen Keine Laravel-Methoden wie route() umgehen, die es mir erlaubt, eine benannte Route zu verknüpfen.

Muss ich das Ergebnis der route-Methode manuell mit der Vue-Variable in Javascript zusammenführen?

In meinem Kopf ist so etwas wie:

<a href="{{ route("product::details", ['product' => ':product.id']) }}">@{{ product.id }}</a>

, die ich wahrscheinlich von Vue könnte analysieren/injizieren über Datenbindung?

+0

Ähnlich wie die folgende Frage, aber ich muss "Backend-Parameter" in das Link-Ziel zusammenführen: http://StackOverflow.com/Questions/32560184/How-to-pass-url-Parameter-to-vuejs – patriziotomato

+0

Are Verwenden Sie Laravel oder Vue-Router für Ihr Routing? Ich kann mir keinen Weg vorstellen, wie dies von meinem Kopf her funktionieren würde, da beide entweder einen Pfad benötigen oder eine benannte Route + Parameter – Jeff

+0

Ich benutze Laravel für das Routing. – patriziotomato

Antwort

3

Als Vue ist es Client-Seite und Laravel es ist Server-Seite, die Sie auf diese Weise nicht erreichen können.

Aber man kann über die gerenderte Route so etwas tun:

erstellen vue Methode

goto_route: function (param1) { 
     route = '{{ route('yournamedroute', ['yourparameter' => '?anytagtoreplace?']) }}' 
     location.href = route.replace('?anytagtoreplace?', param1) 

}

Jetzt in Ihrem Aktionselement

<div v-for="o in object"> 
<a v-on:click="goto_route(o.id_key)">press</a> 
</div> 

Grundsätzlich Sie Ersetzen Sie das ... uhmm ... nennen wir es "placehoder" in der gerenderten Route mit th Der erforderliche Wert.

hoffe es hilft.

Verwandte Themen