2013-08-25 10 views
29

Ho un percorso semplice con un parametro:Come passare un parametro a pathFor in Handlebars per Iron-Router con Meteorite?

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

Vorrei avere l'uso manubrio pathFor dell'assistente di qui con la _id:

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

Questo non funziona per far passare il tag _id nella url se ...

risposta

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

Thats come si passa un parametro di

+4

No, questo crea '/ article/abcd /? Id = _ abcd'. – nalply

+1

hmm. Sembra funzionare per me ... – Chet

+1

Forse hai una vecchia versione. – nalply

13

Nell'esempio non è necessario passare alcun parametro. L'helper pathFor utilizzerà automaticamente il contesto dati corrente e acquisirà la proprietà da tale oggetto. Dato che hai un iteratore {{#each articles}}, il contesto dati attuale per pathFor verrà impostato sull'elemento corrente nell'elenco (un articolo). L'oggetto dell'articolo dovrebbe avere una proprietà _id, quindi l'helper del percorso funzionerà. Se si desidera modificare il contesto dei dati, è possibile passare un altro oggetto come primo parametro all'helper pathFor oppure è possibile utilizzare l'helper del blocco {{#with anotherDataContextObject}}.

In v0.5.4, è possibile utilizzare anche i valori della chiave hash Handlebars per sostituire l'oggetto contesto. Nel ramo dev questo non è più vero. Se fornisci coppie di valori chiave come parametri nel tuo helper di Handlebars, quelle saranno aggiunte alla stringa di query. Per illustrare ecco un esempio per il cambiamento nel ramo dev:

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

O

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

In '{{pathFor 'articolo' articolo q = alcuni + query}}', il secondo articolo può essere chiamato qualcosa? Dove posso trovare la documentazione? –

0

In Meteor 1.3.X che sto utilizzando le opzioni per l'helper pathFor.

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