2016-07-04 4 views
-1

J'ai sur ma page une liste de clients (seulement des noms) et quand je clique sur chacun d'eux, je veux ouvrir une nouvelle page appelée 'clientdetails' dans laquelle j'obtiens les détails du client à côté de son nom (I avoir une adresse et un âge);comment passer et recevoir un paramètre en utilisant link-to de ember js?

Ce que j'ai à ce jour est quelque chose comme ceci:

{{#each model as |client|}} 
    <p> {{#link-to "clientdetails"}} {{client.name}} {{/link-to}} 
    </p> 
    {{/each}} 

Comment dois-je passer client.address et client.age à clientdetails et les afficher en conséquence dans la page clientdetails?

Merci.

Répondre

1

Jetez un oeil à:

https://guides.emberjs.com/v2.5.0/templates/links/

Je suppose que vous pourriez créer un itinéraire dans votre route.js pour vous rendre à vos informations client:

Router.map(function() { 
    this.route('clients', function(){ 
    this.route('clientdetails', { path: '/:client_id' }); 
    }); 
}); 

Dans votre template (pour créer un lien avec votre détails du client):

{{#each model as |client|}} 
    <p> {{#link-to "clientdetails" client}} {{client.name}} {{/link-to}} 
    </p> 
{{/each}} 

dernier, créer un modèle clientdetails où vous montrez vos informations client:

<p>{{model.name}}</p> 
<p>{{model.address}}</p> 
<p>{{model.age}}</p> 

Hope it helps,

+2

Gardez à l'esprit que le passage du modèle à relier à induiront des crochet de modèle de cette route pour être ignorée, si vous voulez que le crochet du modèle soit déclenché passez l'ID du modèle à la place (client.id) –

+1

@Kitler encore habituellement le bon chemin est de passer le modèle lui-même, car un re-fetch n'est pas nécessaire. – Lux

+0

Godo point @Lux, alors pensez-vous que la bonne façon est {{# link-to "clientdetails" client}}, non? – jos