2013-08-25 9 views
29

Ich habe eine einfache Route mit einem Parameter:Wie übergibt man einen Parameter an PathFor in Lenker für Iron-Router mit Meteorit?

this.route('article', { 
     path: '/article/:_id', 
     data: function() { return Articles.findOne(this.params._id); } 
    }); 

Ich möchte Gebrauch haben die pathFor Lenker hier mit dem _id Helfer:

{{#each articles}} 
<li><a href="{{pathFor 'article' _id}}">{{title}}</a></li> 
{{/each}} 

Dies funktioniert nicht die _id-Tag in die für das Bestehen obwohl url ...

Antwort

61
<li><a href="{{pathFor 'article' _id=this._id }}">{{title}}</a></li> 

Das ist, wie Sie einen Parameter übergeben

+4

Nein, schafft diese '/ article/ABCD /? Id = _ abcd'. – nalply

+1

hmm. Scheint für mich zu arbeiten ... – Chet

+1

Vielleicht hast du eine alte Version. – nalply

13

In Ihrem Beispiel müssen Sie keine Parameter übergeben. Der Helper pathFor wird automatisch den aktuellen Datenkontext verwenden und die Eigenschaft von diesem Objekt abrufen. Da Sie einen Iterator {{#each articles}} haben, wird der aktuelle Datenkontext für pathFor auf das aktuelle Element in der Liste (ein Artikel) festgelegt. Das Artikelobjekt sollte eine _id -Eigenschaft haben, damit der Pfadhelfer nur funktioniert. Wenn Sie den Datenkontext ändern möchten, können Sie ein anderes Objekt als ersten Parameter an den pathFor Helfer übergeben, oder Sie können den {{#with anotherDataContextObject}} Blockhelfer verwenden.

In v0.5.4 können Sie auch die Hashwerte für den Handlebars verwenden, um das Kontextobjekt zu ersetzen. Im Dev-Zweig trifft das nicht mehr zu. Wenn Sie in Ihrem Lenker-Helper Schlüsselwertpaare als Parameter angeben, werden diese an die Abfragezeichenfolge angehängt. Zur Veranschaulichung hier ein Beispiel für die Änderung in dev Zweig:

{{pathFor 'article' article q=some+query}} 
//=> "/article/abcd/?q=some+query 

Oder

{{#with article}} 
{{pathFor 'article' q=some+query}} 
//=> "/article/abcd/?q=some+query 
{{/with}} 
+0

In '{{pathFor 'article' article q = einige + query}}', kann der zweite 'article' irgendwas heißen? Wo finde ich die Dokumentation? –

0

In Meteor 1.3.X Ich verwende die Optionen für den pathFor Helfer.

{{pathFor route = '' data = query = '' hash = ''}}