2013-08-25 19 views
29

Mam proste trasy z parametrem:Jak przekazać parametr do ścieżkiDo Handlebars for Iron-Router with Meteorite?

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

chciałbym mieć korzystania kierownica pathFor pomocniczymi tutaj z _id:

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

Ta praca nie robi dla przechodzącej tag _id Into the URL chociaż ...

Odpowiedz

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

Ów jak przekazać parametr

+4

Nie, to tworzy '/ article/abcd /? Id = _ abcd'. – nalply

+1

hmm. Wydaje się pracować dla mnie ... – Chet

+1

Być może masz starą wersję. – nalply

13

W twoim przykładzie nie musisz przekazywać żadnych parametrów. Pomocnik pathFor automatycznie użyje bieżącego kontekstu danych i pobierze właściwość z tego obiektu. Ponieważ masz iterator {{#each articles}}, bieżący kontekst danych dla pathFor zostanie ustawiony na bieżący element na liście (artykuł). Obiekt artykułu powinien mieć właściwość _id, aby pomocnik ścieżki działał. Jeśli chcesz zmienić kontekst danych, możesz przekazać inny obiekt jako pierwszy parametr pomocnikowi pathFor lub użyć pomocnika blokowego {{#with anotherDataContextObject}}.

W wersji v0.5.4 można również użyć wartości skrótów klawisza Handlebars w celu zastąpienia obiektu kontekstowego. W branży dev to już nie jest prawda. Jeśli podasz pary wartości kluczy jako parametry pomocnika Handlebars, zostaną one dodane do ciągu zapytania. Aby zilustrować tutaj przykład dla zmiany dev oddziału:

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

Albo

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

W '{{pathFor 'article' article q = some + query}}', czy drugi "artykuł" może być nazwany cokolwiek? Gdzie mogę znaleźć dokumentację? –

0

W Meteor 1.3.x Używam opcje dla pomocnika pathFor.

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