2014-08-28 7 views
8

mit Ich versuche Abfrageparameter in Router.go wie unten weitergeben müssen:Passing Abfrageparameter Router.go in Eisen Router

var filter = 'abc'; 
var path = Router.current() && Router.current().path; 
Router.go(path, {query: {filter: filter}}); 

Aber dies ist nicht die URL ändern, stillt es lädt Strompfad ohne Query-String nur. Aber wenn ich den Abfrageparameter manuell zu Pfad wie hinzufügen:

das funktioniert gut. Aber da ich versuche, dieselbe Seite mit einigen gefilterten Daten zu laden. Wenn Sie also auf den Filterknopf klicken, wird die Filterzeichenfolge immer wieder an den Pfad angehängt.

Was ist die richtige Art der Übergabe Abfrage String mit Iron Router?

Antwort

0

Try this:

var path = Router.current() && Router.current().route.originalPath; 

Das sollten Sie den Pfad ohne die Query-String befestigt geben.

4

Die Parameter sind Router.go(path, params, options). Der Abfrageteil sollte in den Parameter options gehen, also versuchen Sie Folgendes: Router.go(path, {}, {query: {filter: 'filter='+filter}}).

EDIT

Antwort aktualisiert nach Robins Kommentar unten.

+0

ich das versucht, aber Seite nicht Last wieder mit Abfrageparameter –

+6

Diese Antwort ist fast richtig ist. Abfrage muss eine Zeichenfolge sein wie 'Router.go (Pfad, {}, {Query:" Filter = Filter "})'. Von Eisenrouter Quelle Linie 220 https://github.com/iron-meteor/iron-router/blob/devel/lib/router_client.js – Robin

+0

Hehe, eine 5-mal hochgewählte Antwort, und es ist falsch; P Aber guter Fang, Das sollte erklären, warum es für Aashu nicht funktioniert hat. –

2

ich gefunden, wenn Ihr erster Parameter in Router.go ist ein Pfad, anstelle eines Vorlagennamens wird der Abfragefilter nicht übergeben. Verwenden Sie eine Vorlage Name:

Router.go(templatename, {_id: 1}, {query: 'q=s', hash: 'hashFrag'}); 
+0

Hat mir sehr geholfen! – rahulserver

Verwandte Themen