web-dev-qa-db-fra.com

Comment passer un paramètre à pathFor dans les guidons pour Iron-Router avec Meteorite?

J'ai un itinéraire simple avec un paramètre:

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

J'aimerais avoir ici l'aide du guidon pathFor avec le _id:

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

Cela ne fonctionne pas pour passer la balise _id dans l'url si ...

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

Voilà comment vous passez un paramètre

61
Chet

Dans votre exemple, vous n'avez pas besoin de transmettre de paramètres. L'assistant pathFor utilisera automatiquement le contexte de données actuel et récupérera la propriété de cet objet. Puisque vous avez un {{#each articles}} itérateur, le contexte de données actuel pour pathFor sera défini sur l'élément en cours dans la liste (un article). L'objet article doit avoir un _id propriété dessus, donc l'assistant de chemin ne fonctionnera que. Si vous souhaitez modifier le contexte des données, vous pouvez passer un autre objet comme premier paramètre à l'assistant pathFor, ou vous pouvez utiliser le {{#with anotherDataContextObject}} aide de bloc.

Dans la version 0.5.4, vous pouvez également utiliser les valeurs de clé de hachage Handlebars pour remplacer l'objet contextuel. Dans la branche dev, ce n'est plus vrai. Si vous fournissez des paires clé-valeur en tant que paramètres dans votre assistant Handlebars, celles-ci seront ajoutées à la chaîne de requête. Pour illustrer voici un exemple pour le changement de branche de développement:

{{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}}
13
cmather

Dans Meteor 1.3.X, j'utilise les options de l'assistant pathFor.

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

0
Gere